W

Whissle-MCP 语音处理服务器

@vmehta14/whissle-mcp
0 Stars 76 次浏览 vmehta14 更新于 2026-08-23

一个基于Python的服务器,提供对Whissle API端点的访问,用于语音转文本、说话人日志、翻译和文本总结。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Whissle MCP 服务器

一个基于 Python 的服务器,提供对 Whissle API 端点的访问,用于语音转文字、说话人分割、翻译和文本摘要。

⚠️ 重要提示

  • 该服务器提供了对 Whissle API 端点的访问,可能会产生费用
  • 每个调用 API 的工具都标有费用警告
  • 请遵循以下指南:
    1. 仅在用户明确请求时使用工具
    2. 对于处理音频的工具,请考虑音频长度,因为它会影响费用
    3. 一些操作(如翻译或摘要)可能成本更高
    4. 描述中没有费用警告的工具是免费使用的,因为它们只读取现有数据

前提条件

  • Python 3.8 或更高版本
  • pip(Python 包安装程序)
  • Whissle API 认证令牌

安装

  1. 克隆仓库:

    git clone <repository-url>
    cd whissle_mcp
    
  2. 创建并激活虚拟环境:

    python -m venv venv
    source venv/bin/activate  # 在 Windows 上使用:venv\Scripts\activate
    
  3. 安装所需的包:

    pip install -e .
    
  4. 设置环境变量:
    在项目根目录下创建一个 .env 文件,并包含以下内容:

    WHISSLE_AUTH_TOKEN=insert_auth_token_here  # 替换为您的实际 Whissle API 令牌
    WHISSLE_MCP_BASE_PATH=/path/to/your/base/directory
    

    ⚠️ 重要:切勿将您的实际令牌提交到仓库。.env 文件已包含在 .gitignore 中,以防止意外提交。

  5. 配置 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:身份验证错误

运行服务器

  1. 启动服务器:

    mcp serve
    
  2. 服务器将在默认的 MCP 端口(通常是 8000)上可用

测试

提供了一个测试脚本来验证所有工具的功能:

python test_whissle.py

测试脚本将会:

  1. 检查身份验证令牌
  2. 测试所有可用工具
  3. 提供每个操作的详细输出
  4. 优雅地处理错误

支持

遇到问题或疑问时,请:

  1. 查看错误消息以获取具体细节
  2. 核实您的身份验证令牌
  3. 确保您的音频文件符合要求
  4. 对于与 API 相关的问题,请联系 Whissle 支持

许可证

[在此处添加您的许可证信息]