音频转录MCP服务器
MCP(模型上下文协议)服务器,使Claude能够转录和分析音频文件,专为法语学习练习而设计。
特性
- 从HTTP/HTTPS URL下载MP3音频文件
- 使用OpenAI Whisper将法语音频转录为文本
- 使用GPT-4将法语文本翻译成英语
- 分析法语祈使句以识别主语代词(tu、vous、nous)
- 使用自动清理功能安全处理临时文件
先决条件
- 包子 运行时(最新稳定版本)
- OpenAI API密钥,可访问Whisper和GPT-4
安装
- 克隆存储库:
cd /Users/joshnewton/Development/audio-transcription-mcp- 安装依赖项:
bun install- 设置环境变量:
export OPENAI_API_KEY="your-openai-api-key"
export LOG_LEVEL="info" # Optional: debug, info, error
export TEMP_DIR="/tmp/audio-transcription" # Optional: custom temp directory
export MAX_FILE_SIZE="25000000" # Optional: max file size in bytes (default 25MB)用法
启动服务器
bun run index.ts或者使用npm脚本:
bun start # Production mode
bun dev # Development mode with auto-reload与Claude Code集成
将服务器添加到Claude Code:
claude mcp add /Users/joshnewton/Development/audio-transcription-mcp可用工具
1. transcribe_audio
从URL下载并转录音频文件。
输入:
{
"url": "https://example.com/audio.mp3"
}输出:
{
"transcription": "Original French text",
"translation": "English translation",
"language": "French"
}2. analyze_french_imperative
分析法语音频文件以确定祈使主语代词。
输入:
{
"url": "https://example.com/french-command.mp3"
}输出:
{
"transcription": "Écoutez attentivement",
"translation": "Listen carefully",
"subject": "vous",
"analysis": "The verb 'écoutez' ends in -ez, which indicates the formal/plural 'vous' form"
}Claude中的示例用法
User: "Listen to this audio and tell me who is being given the command: https://example.com/french-audio.mp3"
Claude: [Uses analyze_french_imperative tool]
Result: The command "Écoutez attentivement" is addressed to "vous" (formal or plural 'you')发展
运行测试
bun test项目结构
audio-transcription-mcp/
├── index.ts # Main entry point
├── src/
│ ├── server.ts # MCP server setup
│ ├── handlers/ # Tool request handlers
│ ├── services/ # Core services
│ └── utils/ # Utility functions
└── tests/ # Test files安全考虑
- 仅接受HTTP/HTTPS URL(无文件//或本地路径)
- 默认情况下,文件大小限制为25MB
- 临时文件会自动清理
- API密钥从未被记录
- 对所有用户提供的数据进行输入验证
多语言支持实施计划
当前状态
该服务器目前针对法语学习进行了优化,在几个组件中使用了硬编码的语言参数。
多语言支持所需的更改
第一阶段:核心多语言基础设施
服务层更新:
transcriber.ts:34-删除硬编码language: "fr"参数analyzer.ts:29-42-用可配置语法分析取代法语特有的祈使分析translator.ts:25-使源语言/目标语言可配置参数
工具架构更改:
- 替换
analyze_french_imperative与通用analyze_grammar工具 - 添加必填项
language工具输入模式的参数 - 添加可选
targetLanguage翻译控制参数
处理程序更新:
- 添加针对支持语言的语言参数验证
- 将语言代码传递给所有服务
- 更新响应格式以包含语言元数据
第二阶段:特定语言分析模块
新文件结构:
src/services/
├── analysis/
│ ├── french.ts # Imperative analysis (tu/vous/nous)
│ ├── spanish.ts # Ser vs Estar, subjunctive detection
│ ├── german.ts # Case analysis (Nominativ, Akkusativ, Dativ, Genitiv)
│ ├── italian.ts # Subjunctive mood, formal/informal register
│ └── base.ts # Common analysis interface
├── languages.ts # Language configurations and metadata
└── language-detector.ts # Auto-detection fallback logic语言配置系统:
interface LanguageConfig {
code: string; // ISO 639-1 code ('fr', 'es', 'de', etc.)
name: string; // Display name
whisperCode: string; // Whisper API language code
analysisRules: object; // Language-specific grammar rules
defaultTarget: string; // Default translation target
}第三阶段:高级功能
- 自动检测: 使用无语言参数的Whisper,信心评分
- 环境配置:
SUPPORTED_LANGUAGES=fr,es,de,it - 回退处理: 默认语言和错误恢复
- 演出 特定语言的缓存和优化
预计实施时间: 核心基础设施为3-4天,每增加一种语言的专门分析规则为1-2天。
路线图和特色创意
语言扩展
- \[\]多语言支持(西班牙语、德语、意大利语、葡萄牙语)
- \[\]自动检测音频文件中的语言
- \[\]跨语言比较分析工具
- \[\]特定语言的语言分析模式
加强法语分析
- \[\]动词时态识别与解释
- \[\]虚拟语气检测
- \[\]条件性与指示性情绪分析
- \[\]语法错误检测和建议
- \[\]词汇难度评估
- \[\]超越命令的正式与非正式语域分析
高级音频处理
- \[\]支持其他音频格式(WAV、M4A、AAC、FLAC)
- \[\]音频增强和降噪
- \[\]演讲者日记(多位演讲者)
- \[\]用于学习的音频速度/音调调整
- \[\]批量处理多个音频文件
- \[\]按句子/短语进行音频分割
- \[\]实时流式转录
语言学习工具
- \[\]基于频率分析的词汇提取
- \[\]根据转录自动生成抽认卡
- \[\]发音评分和反馈
- \[\]IPA(国际音标)表示法
- \[\]文化语境与习语解读
- \[\]句子复杂度评分
- \[\]学习进度跟踪和分析
输出和导出功能
- \[\]字幕文件生成(SRT、VTT、ASS)
- \[\]带翻译和注释的PDF学习指南
- \[\]Anki甲板出口,用于间隔重复
- \[\]研究工作表生成
- \[\]音频同步文本突出显示
- \[\]与流行的语言学习应用程序集成
性能和技术改进
- \[\]缓存重复的音频URL
- \[\]对大型音频文件的流媒体支持
- \[\]多种AI模型选项(本地与云)
- \[\]速率限制和使用分析
- \[\]WebSocket支持实时功能
- \[\]用户进度数据库集成
- \[\]API版本控制和向后兼容性
专用分析工具
- \[\]言语中的情感分析
- \[\]语速和流利度分析
- \[\]口音识别和分析
- \[\]会话流分析
- \[\]礼貌标记检测
- \[\]区域方言识别
- \[\]学术语言检测与口语语言检测
许可证
麻省理工学院
