Loading image...Kiro

Product

  • About Kiro
  • Agents
  • IDE
  • CLI
  • Web
  • Mobile
  • Crew
  • Pricing
  • Downloads

For

  • Enterprise
  • Startups
  • Students

Community

  • Overview
  • Ambassadors
  • Case studies
  • Discord
  • Events
  • Powers
  • Shop
  • Showcase

Resources

  • Docs
  • Blog
  • Changelog
  • FAQs
  • Videos
  • Report a bug
  • Suggest an idea
  • Billing support

Social

Site TermsLicenseResponsible AI PolicyLegalPrivacy PolicyCookie Preferences
Kiro
  • Agents
  • Enterprise
  • Pricing
  • Docs
SIGN INDOWNLOADS
Kiro

Get Started

InstallationAuthenticationYour first project

Models

OverviewAvailable modelsReasoning effortAWS GovCloud (US) models

Features

How Kiro worksLocal command sandboxACP integrations
Specs
Steering
Hooks
MCP
Permissions
Custom agents
Workflows
Agent Skills
Powers
Cloud sessionsMemoryCompactionKiroignoreCheckpoints and rewind
Built-in tools
Configuration scopes

IDE 1.x

What's new in 1.0
Setup & First Run
Editor
Chat
Experimental
Troubleshooting0.x reference

CLI

What's new in V3
Setup & First Run
Terminal UI
Chat
Fullscreen modeVoice modeHeadless modeACPAuto complete
Experimental
2.x reference

Crew

Quick startInstallationRunning 24/7
Chat
Sessions
Message controls
Prompt optimizer
Voice
Rich output & widgets
Agent Capabilities
Features
Interfaces
Apps
System & storageConfigurationSecurityTroubleshooting

Web

Setup & First RunIdentity Center
Connect your repositories
Working with the agent
Autonomous modeScheduleConfiguration Sync
Sandbox

Mobile - Preview

Overview

Commands and Reference

CLI commandsSlash commandsBuilt-in toolsExit codesSettings

Billing

OverviewManaging your subscriptionUpgrading your planDowngrading your planCancelling your planPurchasing add-on creditsManaging your paymentsManaging usage notificationsManaging your taxesContacting billing supportDeleting your accountRelated questions

Enterprise

ConceptsOnboarding quickstart
Connecting your identity provider
Deployment optionsSubscribe your teamManage subscriptions
Governance
Monitor and track
SettingsManaged updatesTLS inspection compatibilityBillingIAMSupported regions
AWS GovCloud (US)

Privacy and Security

OverviewData protectionCode referencesCompliance validationInfrastructure securityIAM permissionsFirewalls, proxies, and data perimetersVPC endpoints (AWS PrivateLink)

Guides

OverviewRunning Kiro in the cloud
Language support
Learn by playing

Migration

Migrating from Q DeveloperMigrating from VSCodeUpgrading from Q CLI
  1. Docs
  2. Crew
  3. Chat
  4. Voice
View as Markdown

Voice

View as Markdown

Voice is a first-class input and output mode in Crew. The default local STT provider runs in-process and downloads its own model on first use, so dictation works without installing any external binary. An optional AWS Transcribe cloud provider is also available. Local Piper text-to-speech (TTS) for replies requires no cloud service.

Two modes: input and output

  • Speech-to-text (STT): press the mic button and start talking; live text streams into the chat input as you speak
  • Text-to-speech (TTS): replies are spoken aloud through your speakers, streamed word-by-word as the agent generates

Both are on-demand. Voice input never fires until you press the mic; voice output never plays unless you enable it per-session or globally.

Voice input (STT)

The local provider

Crew runs a single local STT provider in-process. It downloads a model on first use and keeps it resident, so a short utterance transcribes in tens of milliseconds. No external binary is required. Dictation works on macOS desktop installs.

If a source install needs its audio decoder, open Settings → Voice and choose Download decoder. Crew downloads a verified decoder when one is available, rather than requiring you to install ffmpeg manually.

Two model sizes are available:

ModelDownload sizeNotes
base (default)~148 MBFast, works well for most dictation
turbo~1.6 GBHigher accuracy; a stored turbo setting from an earlier install still works

The default for new installs is base. A stored turbo from a prior install resolves correctly but triggers the larger download.

json
{ "stt": { "model": "base" } }
Info

The whisper, mlx, parakeet, and faster providers from earlier releases are retired. Saved settings that named one of those providers fall back to local automatically. Run kirocrew config defaults to list stored values that still hold superseded defaults, then use --adopt or --keep to decide.

Test your microphone

Under the Microphone picker in Settings → Voice, choose Test microphone to open the selected input, or the system default shown as System default (device name), and watch a live Microphone level bar. Speak, and the bar should move. The audio goes only to the level meter: nothing is recorded, sent, or transcribed, and the test never plays through your speakers.

If the device disconnects, the strip says so. Stop test, changing the picked device, or leaving Settings releases the microphone.

AWS Transcribe (optional cloud provider)

For cloud-grade accuracy, an AWS Transcribe provider is available. It streams audio to AWS and requires the voice extra and AWS credentials configured in your environment.

Install the extra:

bash
pip install "kirocrew[voice]"

Configure the provider:

json
{ "stt": { "provider": "transcribe" } }

Custom vocabulary (Amazon Transcribe)

If you have uploaded a custom vocabulary to Amazon Transcribe, dictation can use it so names and terms are spelled right. In Settings → Voice, with the provider set to Amazon Transcribe, the Custom vocabulary picker appears below AWS Profile (Transcribe) and AWS Region (Transcribe) once you have allowed Kiro Crew to call AWS, or while a vocabulary is already stored.

The picker lists the vocabularies in READY state for that profile and region, each as its name and language, plus None. Listing them needs the transcribe:ListVocabularies permission; the panel names that permission when the credentials lack it. The chosen vocabulary is sent with every dictation stream, including voice memos.

The panel warns when the stored vocabulary is missing or not ready in that region, or was built for a language other than your dictation language. Amazon Transcribe refuses it in those cases, so dictation fails until you choose another vocabulary or None. The local provider ignores this setting.

Live text

As you dictate, in-flight words appear in the textarea and stabilize as the model firms up its transcription. Silence for approximately 1.5 seconds finalizes the utterance. Click the mic button again to stop early.

Live text is on by default for new installs. If you upgraded from an older install, check Settings → Voice to enable it.

Silence filtering

The model's silence hallucinations and caption boilerplate (phrases like "Thank you for watching") are filtered before the text reaches your input.

Start dictation with a key

Hold a key to dictate, or tap it to latch dictation on until you tap again. The Start dictation with a key section of Settings → Voice holds the controls:

  • Use a key to start dictation is on by default. Turn it off if a bound key keeps starting recording by accident. The key then does nothing, and the microphone button stays the way to dictate.
  • Shortcut key picks the key. Choose one that types nothing on its own, such as Option, Control, or Shift.
  • How the key works chooses Hold to talk, Press on/off, or Both. With Both, a quick tap starts recording and keeps it going until you press again, and holding records only while you hold.

While the switch is off, the key and mode controls are dimmed so you can still see which key you turned off.

Voice memos

Attach a voice memo as a file with @filename. The audio is transcribed automatically and inlined into the message.

Voice output (TTS)

Piper (the default)

Piper is a fast, local neural TTS engine. It runs entirely on your machine and streams audio word-by-word as the agent generates its reply.

  • Enable TTS from the chat tab header (🔊 icon)
  • You hear the first sentence before the model finishes the last
  • Toggle off with the same button

Piper voice files are downloaded on first use and cached locally.

Configuration

json
{ "voice": { "tts_provider": "piper", "tts_voice": "en_US-amy-medium", "tts_speed": 1.0 } }
KeyDefaultPurpose
voice.tts_providerpiperTTS engine (only piper today)
voice.tts_voiceen_US-amy-mediumPiper voice file to use
voice.tts_speed1.0Playback speed (0.5 to 2.0)

Available voices: any Piper voice file. Drop a .onnx file into ~/.kiro/crew/voices/ and reference it by filename.

Applying settings without a restart

Speech settings that require a Gateway restart offer the restart action inline in the settings panel. You do not need to navigate away or find a separate restart command.

When voice output pauses

TTS skips content that would be difficult to listen to:

  • Code blocks
  • Tool call blocks
  • Long URLs (read as "URL")
  • Markdown headings (read with a slight pitch shift)

Override any of these from the voice settings panel.

Interrupt

Voice output stops when you stop the turn:

  • Click ⏹ Stop to cancel both the streaming reply and the TTS
  • The !stop command in Slack does the same for cross-surface use

The interrupt is bidirectional: stopping the reply also stops the TTS mid-word.

Cross-surface use

Voice input is dashboard-only. Slack voice memos work through Slack's voice-note feature. The Kiro CLI has its own separate voice mode; see CLI Voice mode.

Voice output works everywhere the dashboard is open, including remote hosts accessed over an SSH tunnel or mobile access.

Privacy notes

  • Local STT: audio is processed in-process; nothing leaves your machine
  • Microphone test: audio feeds a level meter only; nothing is recorded, sent, or transcribed
  • AWS Transcribe: audio is streamed to AWS; opt in only with the voice extra installed and credentials configured
  • Piper TTS: fully local; no audio leaves the machine

Troubleshooting

ProblemFix
Mic button does nothingGrant the browser microphone permission for the dashboard origin, then use Test microphone in Settings → Voice to confirm the level bar moves
Dictation starts when you did not mean it toTurn off Use a key to start dictation in Settings → Voice, or pick a different Shortcut key
Transcribe dictation fails after choosing a vocabularyCheck the warning under Custom vocabulary: the vocabulary must be READY in that region and built for your dictation language. Choose another one or None
TTS is silentCheck the dashboard tab's audio permission; confirm system output isn't muted
STT model not downloadedCheck Settings → Voice and your network connection; the model downloads once on first use
Transcription is inaccurateTry a quieter room, switch to the turbo model, or use AWS Transcribe for cloud-grade accuracy
Live text not appearingEnable live text in Settings → Voice
Settings change needs a restartUse the inline restart action in the voice settings panel
Page updated: October 20, 2026
Prompt optimizer
Rich output & widgets