feat(transcription): add shared voice input support (#4232)
* feat(webui): add voice transcription input * feat(webui): render ANSI output in code blocks * refactor(webui): isolate voice recorder logic * refactor(transcription): keep websocket ingress thin * refactor(transcription): resolve channel audio settings on demand * style(webui): neutralize voice waveform color * feat(webui): add voice input tooltip * feat(webui): add voice input keyboard shortcut * fix(webui): distinguish voice shortcut platforms * fix(webui): place voice button after model selector * refactor(webui): share voice hold recording helpers * fix(desktop): allow microphone voice input * fix(webui): stabilize token usage month labels * feat(webui): show voice input on settings overview * fix(webui): label voice capability as recognition * fix(webui): align capability overview status * refactor(webui): isolate transcription socket handling * fix(webui): soften silent voice waveform * refactor(audio): clarify transcription service location * docs(transcription): clarify audio and provider boundaries * fix(exec): reduce session output polling flake
This commit is contained in:
@@ -73,6 +73,7 @@
|
||||
"models": "Models",
|
||||
"providers": "Providers",
|
||||
"image": "Image",
|
||||
"voice": "Voice",
|
||||
"browser": "Web",
|
||||
"cliApps": "CLI Apps",
|
||||
"mcp": "MCP",
|
||||
@@ -99,7 +100,8 @@
|
||||
"capabilities": "Capabilities",
|
||||
"apps": "Apps",
|
||||
"nativeHost": "Native host",
|
||||
"hostSafety": "App safety"
|
||||
"hostSafety": "App safety",
|
||||
"voiceInput": "Voice input"
|
||||
},
|
||||
"models": {
|
||||
"selectModel": "Select model",
|
||||
@@ -161,7 +163,13 @@
|
||||
"engine": "Engine",
|
||||
"logs": "Logs",
|
||||
"diagnostics": "Diagnostics",
|
||||
"contextWindow": "Context window"
|
||||
"contextWindow": "Context window",
|
||||
"transcription": "Transcription",
|
||||
"transcriptionProvider": "Provider",
|
||||
"transcriptionProviderStatus": "Provider status",
|
||||
"transcriptionModel": "Model",
|
||||
"transcriptionLanguage": "Language",
|
||||
"voiceLimits": "Limits"
|
||||
},
|
||||
"help": {
|
||||
"theme": "Switch between light and dark appearance.",
|
||||
@@ -200,7 +208,12 @@
|
||||
"diagnostics": "Export a small runtime report for support.",
|
||||
"localServiceAccessNative": "Allow Full Access shell commands to reach services on this Mac.",
|
||||
"webuiDefaultAccessNative": "Used by native chats without a project-specific permission.",
|
||||
"contextWindow": "Choose the default context budget for this model configuration."
|
||||
"contextWindow": "Choose the default context budget for this model configuration.",
|
||||
"transcription": "Transcribe microphone input before sending it. Chat channel voice messages use the same settings.",
|
||||
"transcriptionProvider": "Uses the matching provider credentials from Providers.",
|
||||
"transcriptionProviderStatus": "API keys stay under providers, not in transcription settings.",
|
||||
"transcriptionModel": "Leave as the resolved default unless your provider needs a custom model id.",
|
||||
"transcriptionLanguage": "Optional ISO-639 hint such as en, zh, ja, or ko."
|
||||
},
|
||||
"timezone": {
|
||||
"select": "Select timezone",
|
||||
@@ -391,6 +404,7 @@
|
||||
"totalProviders": "{{count}} available",
|
||||
"webSearch": "Web search",
|
||||
"imageGeneration": "Image generation",
|
||||
"voiceInput": "Voice input",
|
||||
"workspace": "Workspace"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "Raw SKILL.md",
|
||||
"rawInstructionsEmpty": "No raw instructions.",
|
||||
"detailDescription": "Details for {{name}}."
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "Select provider",
|
||||
"configureProvider": "Configure provider",
|
||||
"languageAuto": "Auto"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -678,6 +697,21 @@
|
||||
"deepResearch": "Deep research",
|
||||
"voice": "Voice input"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "Click to dictate or hold",
|
||||
"stop": "Stop recording",
|
||||
"transcribing": "Transcribing...",
|
||||
"recordingStatus": "Recording {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "Voice input is not supported in this browser.",
|
||||
"permission": "Microphone permission is required.",
|
||||
"notConfigured": "Configure a transcription provider first.",
|
||||
"tooLong": "Recording is too long.",
|
||||
"tooShort": "Hold a little longer to record voice.",
|
||||
"noInput": "No microphone input detected.",
|
||||
"failed": "Could not transcribe audio."
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "Slash commands",
|
||||
"label": "commands",
|
||||
|
||||
Reference in New Issue
Block a user