Whissle-MCP 语音处理服务器
一个基于Python的服务器,提供对Whissle API端点的访问,用于语音转文本、说话人日志、翻译和文本总结。
服务介绍
Whissle MCP 服务器
一个基于 Python 的服务器,提供对 Whissle API 端点的访问,用于语音转文字、说话人分割、翻译和文本摘要。
⚠️ 重要提示
- 该服务器提供了对 Whissle API 端点的访问,可能会产生费用
- 每个调用 API 的工具都标有费用警告
- 请遵循以下指南:
- 仅在用户明确请求时使用工具
- 对于处理音频的工具,请考虑音频长度,因为它会影响费用
- 一些操作(如翻译或摘要)可能成本更高
- 描述中没有费用警告的工具是免费使用的,因为它们只读取现有数据
前提条件
- Python 3.8 或更高版本
- pip(Python 包安装程序)
- Whissle API 认证令牌
安装
-
克隆仓库:
git clone <repository-url> cd whissle_mcp -
创建并激活虚拟环境:
python -m venv venv source venv/bin/activate # 在 Windows 上使用:venv\Scripts\activate -
安装所需的包:
pip install -e . -
设置环境变量:
在项目根目录下创建一个.env文件,并包含以下内容:WHISSLE_AUTH_TOKEN=insert_auth_token_here # 替换为您的实际 Whissle API 令牌 WHISSLE_MCP_BASE_PATH=/path/to/your/base/directory⚠️ 重要:切勿将您的实际令牌提交到仓库。
.env文件已包含在.gitignore中,以防止意外提交。 -
配置 Claude 集成:
将claude_config.example.json复制为claude_config.json并更新路径:{ "mcpServers": { "Whissle": { "command": "/path/to/your/venv/bin/python", "args": [ "/path/to/whissle_mcp/server.py" ], "env": { "WHISSLE_AUTH_TOKEN": "insert_auth_token_here" } } } }- 将
/path/to/your/venv/bin/python替换为您虚拟环境中 Python 解释器的实际路径 - 将
/path/to/whissle_mcp/server.py替换为您server.py文件的实际路径
- 将
配置
环境变量
WHISSLE_AUTH_TOKEN: 您的 Whissle API 认证令牌(必需)- 这是一个敏感凭据,绝不应共享或提交到版本控制
- 联系管理员获取有效令牌
- 将其安全地存储在本地的
.env文件中
WHISSLE_MCP_BASE_PATH: 文件操作的基本目录(可选,默认为用户的桌面)
支持的音频格式
服务器支持以下音频格式:
- WAV (.wav)
- MP3 (.mp3)
- OGG (.ogg)
- FLAC (.flac)
- M4A (.m4a)
文件大小限制
- 最大文件大小:25 MB
- 超过此限制的文件将被拒绝
可用工具
1. 语音转文字
使用 Whissle API 将语音转换为文字。
response = speech_to_text(
audio_file_path="path/to/audio.wav",
model_name="en-NER", # Default model
timestamps=True, # Include word timestamps
boosted_lm_words=["specific", "terms"], # Words to boost in recognition
boosted_lm_score=80 # Score for boosted words (0-100)
)
2. 说话人识别
将语音转换为文本,并识别说话人。
response = diarize_speech(
audio_file_path="path/to/audio.wav",
model_name="en-NER", # Default model
max_speakers=2, # Maximum number of speakers to identify
boosted_lm_words=["specific", "terms"],
boosted_lm_score=80
)
3. 文本翻译
将文本从一种语言翻译成另一种语言。
response = translate_text(
text="Hello, world!",
source_language="en",
target_language="es"
)
4. 文本摘要
使用大语言模型对文本进行摘要。
response = summarize_text(
content="Long text to summarize...",
model_name="openai", # Default model
instruction="Provide a brief summary" # Optional
)
5. 列出 ASR 模型
列出所有可用的 ASR 模型及其功能。
response = list_asr_models()
响应格式
语音转文字和说话人识别
{
"transcript": "The transcribed text",
"duration_seconds": 10.5,
"language_code": "en",
"timestamps": [
{
"word": "The",
"startTime": 0,
"endTime": 100,
"confidence": 0.95
}
],
"diarize_output": [
{
"text": "The transcribed text",
"speaker_id": 1,
"start_timestamp": 0,
"end_timestamp": 10.5
}
]
}
翻译
{
"type": "text",
"text": "Translation:\nTranslated text here"
}
摘要
{
"type": "text",
"text": "Summary:\nSummarized text here"
}
错误响应
{
"error": "Error message here"
}
错误处理
服务器包含强大的错误处理机制,包括:
- 对 HTTP 500 错误自动重试
- 针对不同失败场景的详细错误信息
- 文件验证(存在性、大小、格式)
- 身份验证检查
常见的错误类型:
- HTTP 500:服务器错误(带有重试机制)
- HTTP 413:文件过大
- HTTP 415:不支持的文件格式
- HTTP 401/403:身份验证错误
运行服务器
-
启动服务器:
mcp serve -
服务器将在默认的 MCP 端口(通常是 8000)上可用
测试
提供了一个测试脚本来验证所有工具的功能:
python test_whissle.py
测试脚本将会:
- 检查身份验证令牌
- 测试所有可用工具
- 提供每个操作的详细输出
- 优雅地处理错误
支持
遇到问题或疑问时,请:
- 查看错误消息以获取具体细节
- 核实您的身份验证令牌
- 确保您的音频文件符合要求
- 对于与 API 相关的问题,请联系 Whissle 支持
许可证
[在此处添加您的许可证信息]