语音学习TTS扩展

一款为Claude Desktop提供语音功能的扩展,支持70多种语言的单词发音、音频闪卡生成和完整语言课程。

  • by punt-labs
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jmf-pobox/langlearn-tts-mcp

使用说明

语言学习tts

Claude Desktop扩展程序,使Claude能够说话。让克劳德用70多种语言发音、制作音频抽认卡或用音频上一节完整的语言课。

状态(2026-02-21)

  • 核心CLI和MCP界面正在与ElevenLabs、OpenAI TTS和AWS Polly合作。
  • 提供者默认值和音频变体(单词+示例)仍在标准化中。
  • Claude Desktop目录提交正在等待外部审核。

路线图

见ROADMAP.md。

快速开始

1.获取TTS API密钥

您需要一个至少有一个文本转语音服务提供商的帐户:

  • 十一个实验室 --最好的质量,70多种语言,5000多种声音。免费等级:每月10K字符。(推荐)
  • OpenAI TTS --质量好,设置简单,57种语言,9种声音。
  • AWS Polly --质量更好,41种语言,100多种声音,设置困难(安装指南).

2.在Claude Desktop中安装

下载punt-langlearn-tts.mcpb 然后双击进行安装。ClaudeDesktop将提示您输入API密钥和输出目录。

3.设立导师项目(可选)

langlearntts附带28个辅导提示,每种提示对应7种语言和4个级别的组合。设置一个项目可以为克劳德提供一个导师角色,在课堂上生成音频。

  1. 在Claude Desktop中,单击 项目 在侧边栏中
  2. 点击 创建项目 并为其命名(例如,“施密特先生的德语”)
  3. 打开项目,单击 设置自定义说明
  4. 从复制提示 提示目录 并将其粘贴到“说明”字段中
  5. 在该项目中开始新的对话
语言 高中 一年级 二年级 高级
德语 施密特先生 韦伯教授 哈特曼教授 贝克尔教授
西班牙语 埃琳娜教授 加西亚教授 卡门教授 雷耶斯教授
法语 莫罗夫人 劳伦特教授 杜布瓦教授 博蒙特教授
俄语 伊琳娜·彼得罗夫娜 德米特里教授 娜塔莎教授 米哈伊尔教授
朝鲜语 金森森尼姆 朴教授 金教授 尹教授
日语 田中老师 山本老师 铃木老师 森老师
中文 王老师 陈教授 张教授 魏教授

每个提示都根据学生的水平进行校准,基于 Mollick和Mollick的“分配人工智能”框架.

4.试试看

在任何Claude Desktop对话中,尝试:

用德语说“早上好”

“制作一张音频闪卡:用英语说‘早上好’,然后用德语说‘Guten Morgen’”

将这些西班牙语单词合成为一个合并的音频文件:hola、gracias、por favor、de nada

为这些德语词汇生成成对的抽认卡:strong/stark、house/Haus、book/Buch

每次请求后都会自动播放音频。文件已保存到输出目录(~/langlearn-audio 默认情况下)。

特性

  • 发音任何东西 --让克劳德说出一个单词或短语,然后大声听
  • 音频闪卡 --克劳德首先用英语创建MP3,然后用目标语言创建MP3,中间有一段停顿
  • 词汇表 --给克劳德一个单词列表,并返回单个或合并的音频文件
  • 70+种语言 --德语、西班牙语、法语、俄语、韩语、日语、中文等等
  • 导师模式 --28个内置导师角色,在整个课程中使用音频教学
  • 多重声音 --每个提供者提供一系列的声音;让克劳德用一个具体的名字
  • 可调速度 --音频默认为90%的速度,因此学习者可以清楚地听到发音

故障排除

如果有什么不起作用,请克劳德进行健康检查:

“运行doctor命令检查所有设置是否正确”

日志被写入 ~/.langlearn-tts/logs/langlearn-tts.log (永远不要包含你合成的文本)。看 隐私.md 了解详情。


开发人员参考

以下内容适用于使用CLI、与其他MCP客户端集成或为项目做出贡献的开发人员。

克劳德代码/CLI

curl -fsSL https://raw.githubusercontent.com/punt-labs/langlearn-tts/14f4194/install.sh | sh

默认提供程序是AWS Polly。要使用其他提供程序,请执行以下操作:

LANGLEARN_TTS_PROVIDER=elevenlabs curl -fsSL https://raw.githubusercontent.com/punt-labs/langlearn-tts/14f4194/install.sh | sh
Manual install (if you already have uv)
uv tool install punt-langlearn-tts
langlearn-tts install --provider polly
langlearn-tts doctor
Verify before running
curl -fsSL https://raw.githubusercontent.com/punt-labs/langlearn-tts/14f4194/install.sh -o install.sh
shasum -a 256 install.sh
cat install.sh
sh install.sh

安装ffmpeg进行音频拼接(成对、合并批):

# macOS (requires Homebrew — install from https://brew.sh if needed)
brew install ffmpeg

# Linux — see https://ffmpeg.org/download.html for your distro

# Windows
winget install --id Gyan.FFmpeg

通过CLI设置Claude桌面

langlearn-tts install

写信给 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)。选项: --provider NAME, --output-dir PATH, --uvx-path PATH.运行后重新启动Claude Desktop。

或手动添加:

{
  "mcpServers": {
    "langlearn-tts": {
      "command": "/absolute/path/to/uvx",
      "args": ["--from", "punt-langlearn-tts", "langlearn-tts-server"],
      "env": {
        "LANGLEARN_TTS_OUTPUT_DIR": "/absolute/path/to/output/directory"
      }
    }
  }
}

Claude Desktop不继承您的shell环境。API键必须是文字值(不支持env-var引用)。编辑后重新启动。

环境变量

Env-var 必填 描述
LANGLEARN_TTS_PROVIDER 没有 elevenlabs, polly (没有API密钥时为默认值),或 openai
ELEVENLABS_API_KEY 对于ElevenLabs 您的API密钥
OPENAI_API_KEY 对于OpenAI 您的API密钥
LANGLEARN_TTS_OUTPUT_DIR 否 输出目录(默认: ~/langlearn-audio)
LANGLEARN_TTS_MODEL 否 型号名称。ElevenLabs: eleven_v3 (默认)。OpenAI: tts-1, tts-1-hd

对于Polly,AWS凭据从以下位置读取 ~/.aws/credentials.

CLI使用情况

# Single synthesis
langlearn-tts synthesize "Guten Morgen" --voice daniel -o morning.mp3

# Custom speech rate (percentage, default 90)
langlearn-tts synthesize "Привет" --voice tatyana --rate 70 -o privet.mp3

# ElevenLabs with voice settings
langlearn-tts synthesize "Guten Morgen" --voice Rachel \
  --stability 0.5 --similarity 0.7 --style 0.3 --speaker-boost

# Pair: English + German stitched with a pause
langlearn-tts synthesize-pair "good morning" "Guten Morgen" \
  --voice1 joanna --voice2 daniel -o pair.mp3

# Batch from JSON file (["hello", "world", "good morning"])
langlearn-tts synthesize-batch words.json -d output/

# Batch merged into single file
langlearn-tts synthesize-batch words.json -d output/ --merge --pause 800

# Pair batch from JSON file ([["strong", "stark"], ["house", "Haus"]])
langlearn-tts synthesize-pair-batch pairs.json -d output/

# Browse AI tutor prompts
langlearn-tts prompt list
langlearn-tts prompt show german-high-school | pbcopy

声音

十一个实验室 --5000多个声音。任何声音都适用于任何语言。您还可以直接传递语音ID(ElevenLabs仪表板上的20个字符串)。语音设置: --stability, --similarity, --style (0.0–1.0), --speaker-boost (旗帜)。

AWS Polly --93个声音 AWS Polly语音列表每个声音都针对特定语言进行训练。自动选择引擎(神经、标准、生成、长形式)。

OpenAI TTS --9种声音:合金、灰烬、珊瑚、回声、寓言、玛瑙、新星、圣人、微光。默认型号: tts-1.使用 --model tts-1-hd 为了更高的质量。

所有语音名称都不区分大小写。

MCP工具

工具 说明
synthesize 将单个文本转换为MP3
synthesize_batch 多个文本,可选择合并
synthesize_pair 两段文字停顿了一下
synthesize_pair_batch 多对,可选择合并

每个工具都接受 auto_play (默认值:true)在合成后立即播放音频。

其他MCP客户端

langlearn-tts适用于任何支持stdio传输的MCP客户端。使用服务器命令 uvx --from punt-langlearn-tts langlearn-tts-server 根据上述环境变量。找到你的 uvx 路径与 which uvx --所有路径都必须是绝对的。

发展

git clone https://github.com/punt-labs/langlearn-tts.git
cd langlearn-tts
uv sync --all-extras

uv run pytest tests/ -v
uv run ruff check src/ tests/
uv run ruff format src/ tests/
uv run mypy src/ tests/
uv run pyright src/ tests/

许可证

麻省理工学院