基于 Kyutai Pocket TTS 模型的完全本地、离线文本转语音工具。无需任何 API 调用或网络连接即可从文本生成高质量音频。内置 8 种语音,支持语音克隆,完全在 CPU 上运行。
# 1. 在 Hugging Face 上接受模型许可协议
# https://huggingface.co/kyutai/pocket-tts
# 2. 安装包
pip install pocket-tts
# 或使用 uv 进行自动依赖管理
uvx pocket-tts generate "Hello world"
# 基础用法
pocket-tts "你好,我是你的 AI 助手"
# 指定语音
pocket-tts "你好" --voice alba --output hello.wav
# 使用自定义语音文件(语音克隆)
pocket-tts "你好" --voice-file myvoice.wav --output output.wav
# 调整语速
pocket-tts "你好" --speed 1.2
# 启动本地服务器
pocket-tts --serve
# 列出可用语音
pocket-tts --list-voices
from pocket_tts import TTSModel
import scipy.io.wavfile
# 加载模型
tts_model = TTSModel.load_model()
# 获取语音状态
voice_state = tts_model.get_state_for_audio_prompt(
"hf://kyutai/tts-voices/alba-mackenna/casual.wav"
)
# 生成音频
audio = tts_model.generate_audio(voice_state, "你好,世界!")
# 保存为 WAV 文件
scipy.io.wavfile.write("output.wav", tts_model.sample_rate, audio.numpy())
# 检查采样率
print(f"采样率: {tts_model.sample_rate} Hz")
| 语音 | 描述 |
|---|---|
| alba | 随意的女性语音 |
| marius | 男性语音 |
| javert | 清晰的男性语音 |
| jean | 自然的男性语音 |
| fantine | 女性语音 |
| cosette | 女性语音 |
| eponine | 女性语音 |
| azelma | 女性语音 |
或使用 --voice-file /path/to/wav.wav 进行自定义语音克隆。
| 选项 | 描述 | 默认值 |
|---|---|---|
text |
要转换的文本 | 必填 |
-o, --output |
输出 WAV 文件 | output.wav |
-v, --voice |
预设语音 | alba |
-s, --speed |
语速 (0.5-2.0) | 1.0 |
--voice-file |
用于克隆的自定义 WAV 文件 | 无 |
--serve |
启动 HTTP 服务器 | 否 |
--list-voices |
列出所有语音 | 否 |