使用说明
STT工具-语音转文本MCP工具
概述
STT(语音转文本)工具使AI代理能够通过麦克风录音或音频文件转录接收用户的语音输入。它是TTS工具的伴侣,实现了人工智能和用户之间的完全双向语音通信。
特性
- 🎤 麦克风录音 -通过自动语音检测记录用户语音
- 📁 文件转录 -转录现有的音频文件(mp3、wav、m4a、ogg、flac、webm)
- 🔊 语音活动检测 -使用WebRTC VAD进行智能语音开始/结束检测
- ☁️ 云转录 -OpenAI Whisper API实现最佳精度
- 💻 本地转录 -离线/私人使用更快的耳语(如果CUDA不可用,则自动回退到CPU)
- ⏱️ 灵活的超时 -配置整体、初始静音和语音后静音超时
- 🔄 无限期等待 -永远等待用户响应(当用户不在时)
- 🐛 调试功能 -将录音和成绩单保存到文件
- 📦 自动安装 -首次使用时会自动安装依赖项
安装
无需手动安装! 首次使用时会自动安装依赖关系:
| 依赖关系 | 安装时间 | 包 |
|---|---|---|
| 音响设备 | 第一 listen 或 list_input_devices 呼叫 |
sounddevice |
| numpy | 第一个 listen 或 list_input_devices 呼叫 |
numpy |
| webrtcvad | 第一 listen 或 list_input_devices 呼叫 |
webrtcvad-wheels |
| openai | 首次云转录 | openai |
| 更快的耳语 | 第一 use_local_model: true 呼叫 |
faster-whisper |
对于手动安装:
# Core dependencies
pip install sounddevice numpy webrtcvad-wheels
# Cloud transcription (OpenAI Whisper API)
pip install openai
# Local transcription (faster-whisper)
pip install faster-whisper
快速开始
基本语音输入
{
"input": {
"operation": "listen",
"timeout_seconds": 60,
"silence_timeout_seconds": 2.0,
"tool_unlock_token": "<token>"
}
}
无限期等待用户
非常适合用户可能不在的时候:
{
"input": {
"operation": "listen",
"timeout_seconds": 0,
"initial_silence_timeout_seconds": 0,
"tool_unlock_token": "<token>"
}
}
使用本地模型(不需要API密钥)
{
"input": {
"operation": "listen",
"use_local_model": true,
"local_model_size": "small",
"tool_unlock_token": "<token>"
}
}
转录文件
{
"input": {
"operation": "transcribe_file",
"audio_file_path": "C:/recordings/meeting.mp3",
"language": "en",
"tool_unlock_token": "<token>"
}
}
运营
| 操作 | 说明 |
|---|---|
readme |
获取文档并解锁令牌 |
listen |
从麦克风录制,直到演讲结束,然后转录 |
transcribe_file |
转录现有音频文件 |
list_input_devices |
列出带有ID的可用麦克风 |
stop_listening |
停止活动录制会话 |
get_status |
检查当前是否正在录制/处理 |
参数
记录参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
timeout_seconds |
int | 60 | 最大录制时间(0=不确定) |
silence_timeout_seconds |
float | 2.0 | 演讲后结束录制的静音持续时间 |
initial_silence_timeout_seconds |
int | 30 | 第一个语音的最大等待时间(0=不确定) |
min_speech_duration_seconds |
float | 0.5 | 静音结束录制前的最小语音 |
input_device |
string | null | 麦克风设备ID或名称子字符串 |
vad_aggressiveness |
int | 2 | VAD敏感性0-3(较高=更具攻击性) |
转录参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
language |
string | null | 语言提示(ISO-639-1代码,如'en'、'es'、'fr') |
use_local_model |
bool | false | 使用本地更快的耳语而不是OpenAI |
local_model_size |
string | “base” | 型号:微型、底座、小型、中型、大v3、涡轮增压 |
openai_api_key |
string | null | neneneba API密钥(如果不使用env/config) |
调试参数
| 参数 | 类型 | 说明 |
|---|---|---|
save_audio_to_file |
string | 将录制的音频保存为WAV的路径 |
save_transcript_to_file |
string | 将成绩单另存为文本的路径 |
响应格式
成功转录
{
"status": "success",
"transcript": "Hello, this is what the user said.",
"duration_seconds": 3.5,
"language_detected": "en",
"engine_used": "openai_whisper",
"audio_saved_to": "C:/temp/recording.wav",
"transcript_saved_to": "C:/temp/recording.txt"
}
超时(无发言)
{
"status": "timeout",
"message": "No speech detected within timeout period",
"waited_seconds": 30
}
录制已停止
{
"status": "stopped",
"message": "Recording was stopped by user request"
}
获取状态响应
{
"status": "recording",
"is_recording": true,
"session_id": "rec_1234567890",
"elapsed_seconds": 5.2,
"speech_detected": true
}
用例
1.交互式语音命令
{
"input": {
"operation": "listen",
"timeout_seconds": 10,
"silence_timeout_seconds": 1.5,
"initial_silence_timeout_seconds": 5,
"tool_unlock_token": "<token>"
}
}
2.用户离开-等待返回
{
"input": {
"operation": "listen",
"timeout_seconds": 0,
"initial_silence_timeout_seconds": 0,
"use_local_model": true,
"tool_unlock_token": "<token>"
}
}
代理可以通过TTS、弹出窗口或其他方式显示通知,表示它正在等待输入。
3.直接提供API密钥
{
"input": {
"operation": "listen",
"openai_api_key": "sk-...",
"timeout_seconds": 30,
"tool_unlock_token": "<token>"
}
}
4.调试录制问题
{
"input": {
"operation": "listen",
"save_audio_to_file": "C:/temp/debug.wav",
"save_transcript_to_file": "C:/temp/debug.txt",
"tool_unlock_token": "<token>"
}
}
转录引擎
OpenAI Whisper API(默认)
- 准确度:同类最佳
- 成本:约0.006美元/分钟
- 语言:97+种语言
- API关键来源 (按优先顺序):
openai_api_key参数(直接在调用中)OPENAI_API_KEY环境变量- 配置文件(
settings[0].api_keys.OPENAI_API_KEY)
本地更快的耳语
- 隐私:没有数据离开您的机器
- 成本:免费
- 图形处理器:如果可用,自动使用CUDA,回退到CPU
- 模型:微小(最快)→ base → 小→ 中等→ large-v3/turbo(最精确)
| 型号 | 参数 | 速度 | 精度 |
|---|---|---|---|
| 微小 | 39M | 最快 | 适合快速命令 |
| 基础 | 74M | 速度快 | 平衡性好 |
| 小 | 244M | 中等 | 精度更好 |
| 中等 | 769M | 较慢 | 精度高 |
| large-v3 | 1550M | 最慢 | 最佳精度 |
| 涡轮增压 | 809M | 快速 | 优化的大型型号 |
语音活动检测
该工具使用WebRTC VAD进行智能语音检测:
- 等待:听取任何演讲以开始录制
- 录制:在检测到语音时捕获音频
- 静音检测:结束录制后
silence_timeout_seconds沉默
Aggressiveness 0: Least aggressive (catches more speech, more false positives)
Aggressiveness 1: Moderate
Aggressiveness 2: Default (good balance)
Aggressiveness 3: Most aggressive (may miss soft speech)
平台支持
| 平台 | 状态 | 注释 |
|---|---|---|
| Windows | ✅ 完整 | 初级开发平台 |
| macOS | ✅ 支持 | 需要麦克风权限 |
| Linux | ✅ 支持 | 与PulseAudio/ALSA兼容 |
CUDA/GPU支持
本地转录引擎(更快的耳语)自动:
- 检查CUDA是否可用
- CUDA实际工作的测试
- 如果CUDA失败(例如,驱动程序不匹配),则回退到CPU
无需手动配置-它只是工作!
最佳结果提示
- 使用好的麦克风 -USB耳机或专用麦克风效果最佳
- 尽量减少背景噪音 -VAD有帮助,但安静的环境更好
- 说清楚 -语速正常,说话不要太快
- 设置适当的超时 -命令越短,听写越长
- 使用语言提示 -当您知道预期的语言时,可以提高准确性
- 使用“小”模型 -本地转录速度和准确性的最佳平衡
相关工具
- TTS(chrome_browser) -用于与用户对话的文本转语音
- 用户 -UI弹出窗口和通知
- 系统 -系统级操作,包括音频设备管理
许可证
专有-©2025克里斯托弗·内森·德雷克。保留所有权利。