语音模式
注意:
src/voice/目录实际仅包含 1 个文件 (voiceModeEnabled.ts),为 feature flag 控制文件。下面描述的完整语音状态机、音频捕获管道等功能可能分布在其他目录中(如vendor/audio-capture-src/、src/context/voice.tsx等),或为规划中功能。
语音状态机
typescript
// 实际类型是对象类型,非简单字符串联合
export type VoiceState = {
voiceState: 'idle' | 'recording' | 'processing'
voiceError: string | null
voiceInterimTranscript: string
voiceAudioLevels: number[]
voiceWarmingUp: boolean
}
// 状态转换
// idle → (按下快捷键) → recording
// recording → (松开快捷键/静音检测) → processing
// processing → (转写完成) → idle技术栈
麦克风 → 音频捕获(native) → 语音识别 API → 文字 → 输入框| 组件 | 说明 |
|---|---|
vendor/audio-capture-src/ | 原生音频捕获 |
| Whisper API / 其他 | 语音识别 |
useVoice() | React Hook 集成(src/hooks/useVoice.ts) |
身份验证与可用性
src/voice/voiceModeEnabled.ts 提供基本检查,包括 hasVoiceAuth() 函数和 isVoiceStreamAvailable 布尔值。
快捷键
typescript
// 语音模式快捷键(feature-gated: VOICE_MODE)
// Space — 按住录音
// 在 Chat 上下文中激活