文本转语音服务器

一个基于OpenAI TTS模型的文本转语音服务器,可将文本转换为多种语音输出,适用于自动化代理、语音交互等场景。

  • by JosefGold
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 JosefGold/tts-mcp

使用说明

🎤 文本转语音MCP服务器

你的经纪人终于学会为自己说话了

欢迎来到文本到语音(TTS)MCP服务器——一个复杂但令人着迷的混乱文本到语音MCP服务器,它将您无聊的书面文字转化为美妙的听觉体验。
因为当你有Python和一些非常花哨的AI模型时,谁还需要人类的声带?

🚀 这有什么作用?

这个令人愉快的装置可以接收你的文本,并使用OpenAI最先进的TTS模型通过你电脑的扬声器说话。这就像有一个私人叙述者,除了他们永远不会累,永远不会要求喝咖啡休息,永远不会评判你糟糕的编程笑话。

真正重要的功能

  • 说出MCP工具:使您的代理能够以多种可用声音之一为任何给定文本发声
  • 交货说明:提供可选 instructions 指导交付、性格、节奏、语气和情感
  • 模型选择:OpenAI TTS模型可以通过环境变量进行配置(默认值: gpt-4o-mini-tts)
  • 阻塞/非阻塞模式:Speak命令可以在播放声音时立即返回以继续代理操作(默认),也可以仅在声音结束后返回以实现更可控的工作流程
  • 基于队列的音频播放:代理可以排队等待消息,并按顺序播放

🛠️ 安装和设置

先决条件

  • Python 3.10+
  • 一个OpenAI API密钥(神奇的成分)
  • PortAudio(PyAudio正常工作所需)
  • 幽默感(可选,但推荐)

快速开始

  1. 安装PortAudio:

    # macOS
    brew install portaudio
    
    # Linux (Debian/Ubuntu)
    sudo apt-get install portaudio19-dev
    
    # Windows
    pip install pipwin && pipwin install pyaudio
    
  2. 克隆此存储库:

    git clone <your-repo-url>
    cd tts-mcp
    
  3. 创建一个虚拟环境(因为全球安装是针对叛逆者的):

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  4. 安装依赖项:

    pip install -r requirements.txt
    
  5. 设置环境变量:

    cp env.template .env
    # Edit .env and add your OpenAI API key
    

    或直接设置:

    export OPENAI_API_KEY="your-secret-key-here"
    
  6. 使用提供的在光标设置中配置MCP mcp-config.json示例:

    {
      "mcpServers": {
        "tts-server": {
          "command": "/absolute/path/to/tts-mcp/.venv/bin/python",
          "args": ["/absolute/path/to/tts-mcp/tts_mcp_server.py"],
          "cwd": "/absolute/path/to/tts-mcp",
          "env": { "PYTHONPATH": "/absolute/path/to/tts-mcp" }
        }
      }
    }
    

    用本地repo和venv替换路径。

  7. 开始让你的电脑说话!

🎭 语音选项

明智地选择你的叙述者:

  • 合金:中性、平衡音调(默认)
  • 灰烬:温暖、富有表现力;友好的支持氛围
  • 民谣:流畅的叙述者;长篇故事
  • 珊瑚:开朗、乐观;欢快的宣传片
  • 回声:清晰专业,就像新闻主播
  • 寓言:温暖而讲故事,非常适合睡前代码评论
  • 缟玛瑙:深度和权威性,当你的代码需要听起来很重要时
  • 新星:明亮而充满活力,就像调试前的热情
  • 智者:冷静、慎重;有用的解释者
  • 闪烁:柔软而温和,当你需要宣布生产错误的坏消息时
  • 诗节:戏剧性的、戏剧性的;预告片阅读

🎪 使用示例

基本用法

# Non-blocking (default) - returns immediately
speak("Hello, world! I'm now audible!")

# Blocking - waits for completion
speak("This message will finish before I return", blocking=True)

# With specific voice
speak("I'm feeling dramatic today!", voice="fable")

# With delivery instructions
speak(
    "You're doing great—let's take this one step at a time.",
    voice="shimmer",
    instructions="Speak in a warm, reassuring and unhurried tone and pace"
)

带MCP的光标

只需告诉Cursor使用 speak 工具在你的谈话。
你可以建议一个声音和风格说明,以保持一致的性格。

⚙️ 配置

环境变量:

  • OPENAI_API_KEY (必需):您的OpenAI API密钥
  • TTS_MODEL (可选):默认为 gpt-4o-mini-tts其他选项包括 tts-1, tts-1-hd (尽管这些以及一些声音不支持“指令”)
  • LOG_LEVEL (可选): DEBUG, INFO (默认), WARNING, ERROR

🧰 故障排除

  • 无音频/无默认输出设备:
    • 设置系统默认输出设备并重新启动MCP服务器。
    • macOS:系统设置→ 声音→ 输出。
  • PyAudio安装问题:
    • macOS: brew install portaudio 然后 pip install -r requirements.txt
    • Linux(Debian/Ubuntu): sudo apt-get install portaudio19-dev 然后 pip install pyaudio
    • 窗户: pip install pipwin && pipwin install pyaudio
  • 缺少API密钥:
    • 确保 .env 包含 OPENAI_API_KEY=... 或者将其导出到您的shell中。
  • 高延迟或断断续续的音频:
    • 关闭其他音频应用程序;验证系统输出设备;保持 blocking=False 如果你需要响应。
  • 日志:
    • 日志流到stderr和 tts_mcp_server.log.尾部带有:
      tail -f tts_mcp_server.log
      

🙏 致谢

  • 用于在此处编写95%代码的游标
  • 咖啡,让一切成为可能

记住:伟大的文字到演讲的力量伴随着巨大的责任。明智地运用你新的发声能力,尽量不要过分惹恼你的同事。

专业提示:如果你的电脑在没有提示的情况下开始与你对话,可能是时候休息一下了。或者更新你的Python版本。可能是后者。

此项目根据BSD 3条款许可证获得许可。请参阅 许可证 文件以获取详细信息。