内容
# 语音转电子邮件外联
一个将语音笔记转换为提取的洞察力的工具 - 将其与csv文件匹配,并向相关招聘人员发送专业电子邮件。
硬编码为凸起的MCP服务器(功能即将推出)
## 🎯 工作原理
### 🎤 语音 → 文本(ElevenLabs)
- **输入**: 音频文件(M4A、MP3等)
- **处理**: ElevenLabs 语音转文本 API 转录音频
- **输出**: 原始文本记录
### 🤖 AgentMail
- **输入**: 语音转文本的原始记录 -> 提取角色和位置 -> 与csv文件中的电子邮件匹配 -> 使用 AgentMail 向所有ID发送电子邮件
- **处理**: OpenAI GPT-4o-mini 生成专业电子邮件
- **应用规则**:
- 专业语气
- 轻微的故事元素
- 无表情符号(干净的商业风格)
### 🔧 MCP → VibeFlow Convex MCP
- **协议**: 模型上下文协议(MCP)
- **服务器**: 自定义MCP服务器公开工具
- **客户端**: 任何MCP兼容的AI代理都可以调用工具
- **结果**: 具有记录和LinkedIn帖子的结构化JSON
## 📁 项目结构
```
voice-linkedin/
├── agent.ts # 调用工具的MCP客户端
├── mcp-server.ts # 带有语音转LinkedIn工具的MCP服务器
├── .env # API密钥(ElevenLabs + OpenAI)
├── package.json # 依赖项
├── tsconfig.json # TypeScript配置
└── Recording.m4a # 用于测试的示例音频文件
```
## 🚀 设置
### 1. 安装依赖项
```bash
npm install
```
### 2. 配置API密钥
创建 `.env` 文件并包含您的API密钥:
```env
ELEVENLABS_API_KEY=您的elevenlabs_api_key
OPENAI_API_KEY=您的openai_api_key
```
### 3. 启动MCP服务器
```bash
npx tsx mcp-server.ts
```
### 4. 使用工具
```bash
npx tsx agent.ts
```
## 🛠️ 使用示例
### 输入
- 音频文件: `./Recording.m4a`
## 🔧 MCP工具详情
### 工具名称
`voiceToEmail`
### 参数
- `filePath`(字符串):要转录的音频文件路径
### 返回值
- `transcript`: 语音转录的原始文本
## 📋 依赖项
- **@modelcontextprotocol/sdk**: MCP客户端/服务器实现
- **axios**: 用于API调用的HTTP客户端
- **form-data**: 用于文件上传的多部分表单数据
- **dotenv**: 环境变量管理
- **zod**: 模式验证
## 🎯 主要功能
- **语音转文本**: 使用ElevenLabs的高质量转录
- **AI内容生成**: 使用GPT-4o-mini的专业LinkedIn帖子
- **MCP协议**: 与任何MCP启用的AI代理兼容
- **错误处理**: 全面的错误报告和调试
- **TypeScript**: 完整的类型安全性和IntelliSense支持
## 🔍 技术细节
### MCP服务器架构
- 使用MCP SDK中的`McpServer`类
- 使用正确的模式注册`voiceToLinkedInPost`工具
- 处理文件验证和API错误响应
- 返回结构化的JSON响应
### API集成
- **ElevenLabs**: 使用`scribe_v1`模型的语音转文本
- **OpenAI**: 使用`gpt-4o-mini`模型的内容生成
- **错误处理**: 详细的API错误日志记录和响应格式化
## 🐛 故障排除
### 常见问题
1. **ElevenLabs的422错误**
- 确保`model_id`设置为`scribe_v1`
- 检查API密钥是否有效并有积分
2. **文件未找到**
- 验证音频文件路径是否存在
- 使用相对路径,如 `./Recording.m4a`
3. **API密钥问题**
- 检查 `.env` 文件是否在项目根目录中
- 验证API密钥是否正确复制
### 调试模式
运行调试输出:
```bash
npx tsx agent.ts
# 在MCP服务器输出中查找console.error消息
```
## 📄 许可证
MIT许可证 - 随意在您的项目中使用!