187 lines
3.9 KiB
Markdown
187 lines
3.9 KiB
Markdown
# 豆包语音工具使用指南
|
||
|
||
简单易用的豆包语音命令行工具,支持**文字转语音(TTS)**和**唱歌**。
|
||
|
||
## 快速开始
|
||
|
||
### 1. 配置环境变量
|
||
|
||
```bash
|
||
# 在 ~/.zshrc 或 ~/.bashrc 中添加
|
||
export DOUBAO_APP_ID="your_app_id"
|
||
export DOUBAO_ACCESS_TOKEN="your_access_token"
|
||
|
||
# 使配置生效
|
||
source ~/.zshrc
|
||
```
|
||
|
||
### 2. 安装依赖
|
||
|
||
```bash
|
||
pip install requests
|
||
```
|
||
|
||
## 使用方法
|
||
|
||
### 📝 文字转语音 (TTS)
|
||
|
||
**基础用法:**
|
||
```bash
|
||
python voice_converter.py tts "你好,我是豆包语音助手"
|
||
```
|
||
|
||
**指定输出文件和音色:**
|
||
```bash
|
||
python voice_converter.py tts "欢迎使用豆包语音" -o welcome.mp3 -v BV701_V2_streaming
|
||
```
|
||
|
||
**可用音色:**
|
||
- `BV700_V2_streaming` - 通用女声(默认,推荐)
|
||
- `BV701_V2_streaming` - 通用男声
|
||
- `BV406_streaming` - 温柔女声
|
||
- `BV158_streaming` - 活泼女声
|
||
- `BV115_streaming` - 磁性男声
|
||
|
||
### 🎵 唱歌 (Singing)
|
||
|
||
**基础用法:**
|
||
```bash
|
||
python singing.py sing "请唱一首关于春天的歌"
|
||
```
|
||
|
||
**指定输出文件:**
|
||
```bash
|
||
python singing.py sing "唱一个温柔的摇篮曲" -o lullaby.mp3
|
||
```
|
||
|
||
**交互式模式(实时对话):**
|
||
```bash
|
||
python singing.py interactive
|
||
```
|
||
|
||
在交互模式下可以自然地与豆包对话,要求她唱歌、讲故事等。输入 `quit` 退出。
|
||
|
||
## Python 代码调用
|
||
|
||
```python
|
||
# TTS - 文字转语音
|
||
from voice_converter import DoubaoVoiceConverter
|
||
|
||
converter = DoubaoVoiceConverter()
|
||
audio_file = converter.text_to_speech(
|
||
"你好,欢迎使用豆包语音",
|
||
output_file="hello.mp3",
|
||
voice_type="BV700_V2_streaming"
|
||
)
|
||
print(f"生成语音: {audio_file}")
|
||
|
||
# 唱歌
|
||
import asyncio
|
||
from singing import DoubaoSinging
|
||
|
||
async def main():
|
||
singing = DoubaoSinging()
|
||
|
||
# 让豆包唱歌
|
||
audio_file = await singing.sing(
|
||
"请唱一首情歌",
|
||
output_file="love_song.mp3",
|
||
language="zh-CN"
|
||
)
|
||
print(f"唱歌完成: {audio_file}")
|
||
|
||
# 或启动交互模式
|
||
# await singing.interactive_singing()
|
||
|
||
asyncio.run(main())
|
||
```
|
||
|
||
## 完整示例
|
||
|
||
### 示例1:生成通知语音
|
||
|
||
```bash
|
||
# 生成女声通知
|
||
python voice_converter.py tts "您有一条新消息,请注意查收" -o notification.mp3
|
||
|
||
# 生成男声通知
|
||
python voice_converter.py tts "系统将在5分钟后进行维护" -o maintenance.mp3 -v BV701_V2_streaming
|
||
```
|
||
|
||
### 示例2:唱歌
|
||
|
||
```bash
|
||
# 让豆包唱一首情歌
|
||
python singing.py sing "请唱一首温柔的情歌" -o love_song.mp3
|
||
|
||
# 让豆包唱一首儿歌
|
||
python singing.py sing "唱一首欢快的儿歌" -o kids_song.mp3
|
||
|
||
# 启动交互式模式与豆包对话
|
||
python singing.py interactive
|
||
```
|
||
|
||
|
||
## 错误处理
|
||
|
||
### 常见错误
|
||
|
||
**1. 环境变量未设置**
|
||
```
|
||
❌ 错误: 请先设置环境变量:
|
||
export DOUBAO_APP_ID='your_app_id'
|
||
export DOUBAO_ACCESS_TOKEN='your_access_token'
|
||
```
|
||
**解决:** 确保已正确设置环境变量并 `source ~/.zshrc`
|
||
|
||
**2. API 调用失败**
|
||
```
|
||
❌ 错误: TTS 失败 (code: 4001): Invalid token
|
||
```
|
||
**解决:** 检查 Access Token 是否正确或已过期
|
||
|
||
## 技术参数
|
||
|
||
### 音频格式要求
|
||
|
||
**TTS 输出:**
|
||
- 格式:MP3
|
||
- 采样率:16000 Hz
|
||
- 声道:单声道
|
||
|
||
### API 限制
|
||
|
||
- **TTS**: 单次最长 5000 字符
|
||
- **并发限制**: 根据购买的并发数
|
||
|
||
## 在 Claude Code 中使用
|
||
|
||
在 Claude Code 中可以直接用自然语言调用:
|
||
|
||
**TTS - 文字转语音**:
|
||
```
|
||
"把这段话转成语音:你好世界"
|
||
"用温柔女声合成:欢迎光临"
|
||
```
|
||
|
||
**唱歌**:
|
||
```
|
||
"请唱一首关于春天的歌"
|
||
"唱一个温柔的摇篮曲"
|
||
"开启与豆包的实时语音对话模式"
|
||
```
|
||
|
||
## 获取 API 凭证
|
||
|
||
1. 访问 [火山引擎控制台](https://console.volcengine.com/speech/app)
|
||
2. 创建应用
|
||
3. 获取 App ID 和 Access Token
|
||
4. 开通所需服务:
|
||
- 豆包语音合成模型2.0
|
||
|
||
## 参考链接
|
||
|
||
- [火山引擎豆包语音文档](https://www.volcengine.com/docs/6561)
|
||
- [API 接口文档](https://www.volcengine.com/docs/6561/1096680)
|
||
- [计费说明](https://www.volcengine.com/docs/6561/1359370)
|