小米本地文本转语音 (Xiaomi TTS) Skill
1. 技能名称
xiaomi-local-tts
2. 技能描述
调用本地scripts目录下的 XiaomiTTS.exe 命令行工具,将文本文件转换为语音文件。该技能基于小米自研TTS引擎,支持高自然度语音合成及流式输出,适用于实时语音播报、有声书生成及语音助手场景。
XiaomiTTS.exe从这儿下载压缩包,https://gitee.com/Megadotnet/XiaomiTTS/releases/download/v0.3/XiaoMiTTS-win-64-single.zip, 解压后重命名XiaomiTTS.exe
3. 版本
1.2.0 (已支持文件输入、流式合成与完整功能)
4. 作者
megadotnet
5. 目标与定位
- 目标:将文本文件内容转换为高质量语音,支持流式处理以降低延迟。
- 定位:本地化、高性能的文本转语音执行器,依赖
XiaomiTTS.exe二进制文件。
6. 激活条件与边界
激活条件: 当用户请求"朗读文本文件"、"生成语音文件"、"将文本转为语音"或明确提及"使用小米TTS"时触发。
不激活场景:
- 用户仅需要文本摘要或翻译。
- 用户未提供文本文件或文本内容。
7. 核心规则与约束
- 输入处理:
- 必须提供文本文件路径作为输入,不支持直接文本参数。
- 需要MIMO_API_KEY环境变量进行身份验证。
- 文本文件应为UTF-8编码,支持中英文混合内容。
- 流式支持:
- 当用户要求"实时朗读"或"边生成边播放"时,必须启用
--stream标志。
- 当用户要求"实时朗读"或"边生成边播放"时,必须启用
- 文件管理:
- 输出文件默认为输入文件名加.wav后缀。
- 支持自定义输出文件路径和格式。
- 环境要求:
- 需要.NET 9.0运行时环境。
- 必须设置MIMO_API_KEY环境变量。
8. 标准执行流程 (SOP)
- 参数解析:提取输入文件路径、输出文件路径(可选)、流式标志。
- 环境验证:检查MIMO_API_KEY环境变量是否设置。
- 输入验证:确认输入文本文件存在且可读。
- 命令构建:
- 基础命令:
XiaomiTTS.exe <input_file> [output_file] - 若启用流式:追加
--stream
- 基础命令:
- 执行与反馈:
- 调用系统Shell执行命令。
- 捕获合成进度和结果信息。
- 确认输出文件生成成功。
9. 参数说明
| 参数名 | 类型 | 必填 | 默认值 | 描述 |
| :--- | :--- | :--- | :--- | :--- |
| input_file | string | 是 | - | 包含待合成文本的文件路径。 |
| output_file | string | 否 | <input_file>.wav | 目标音频文件路径,支持.wav格式。 |
| stream | boolean | 否 | false | 是否启用流式合成模式,降低延迟。 |
| api_key | string | 是 | - | MIMO_API_KEY环境变量,用于身份验证。 |
10. 环境变量
| 变量名 | 类型 | 必填 | 描述 |
| :--- | :--- | :--- | :--- |
| MIMO_API_KEY | string | 是 | 小米TTS服务的API密钥,必须预先设置。 |
11. 示例调用
场景 A:基本文本转语音
用户指令:"请将test.txt文件转换为语音"
工具调用参数:
{
"input_file": "test.txt",
"output_file": "test.wav"
}
场景 B:流式语音合成(实时播报)
用户指令:"请用小米TTS实时朗读test.txt文件内容"
工具调用参数:
{
"input_file": "test.txt",
"stream": true
}
场景 C:自定义输出路径
用户指令:"将input.txt转换为output.wav"
工具调用参数:
{
"input_file": "input.txt",
"output_file": "output.wav"
}
12. 错误处理
- 文件不存在:返回明确的错误信息,提示检查输入文件路径。
- API密钥缺失:提示设置MIMO_API_KEY环境变量。
- 编码错误:建议使用UTF-8编码保存文本文件。
- 合成失败:返回具体的错误原因和解决建议。
13. 性能特征
- 合成速度:约15字符/秒(非流式模式)。
- 输出格式:16kHz采样率,单声道,WAV格式。
- 文件大小:约10KB/秒语音内容。
- 内存使用:流式模式下内存占用更低。
14. 使用限制
- 文本长度:建议单次合成不超过10000字符。
- 文件格式:输入必须为纯文本文件(.txt)。
- 网络要求:需要网络连接进行TTS服务调用。
- 并发限制:建议单进程使用,避免并发调用。
微信扫一扫