Skip to content

语音模式

注意: 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 上下文中激活