SuperAPI AI 工具集

piper

通用与其它

查看项目

更新于 10-16 05:28

技能介绍

用途

Piper 技能用于将文本或 Markdown 文件转换为自然语音音频,底层使用 Piper TTS。当用户表达“convert text to speech”“text to audio”“read this aloud”等类似意图时触发。

主要能力

  • 支持两种输入形式:文件路径(.md 或 .txt)或直接的字面文本。
  • 输出为 .wav 音频文件,路径由用户指定。
  • 对 Markdown 文件会先进行清理,去除 YAML frontmatter、Markdown 格式(标题、粗体、斜体、链接)、代码块和行内代码、HTML 标签与注释、Emoji 和特殊 Unicode、URL,得到适合朗读的纯文本。
  • 可配置语音模型、语速、句间静音时长和音量。
  • 支持批量处理目录中的多个 Markdown 文件。
  • 生成后可校验输出文件是否存在且非空,并可使用 ffprobe 获取音频时长。
  • 支持按指定语法将生成的音频链接回原始输入:![[The Converted Audio File.wav]]。

参数

  • input(字符串,必填):输入文件路径(.md 或 .txt)或字面文本。
  • output(字符串,必填):输出 .wav 文件路径。
  • voice(字符串,可选,默认 en_US-amy-medium):语音模型名称。
  • speed(浮点数,可选,默认 0.67):语速(0.5=慢,0.67=1.5x,1.0=正常,1.5=快)。
  • sentence_silence(浮点数,可选,默认 0.3):句子之间的静音秒数。
  • volume(浮点数,可选,默认 1.0):音量倍数。

使用方式

  1. 校验输入:判断输入是文件还是文本。若是文件必须存在且可读;若为 Markdown 则进入清理步骤;若为文本文件或字面文本则直接进入合成步骤。
  2. 清理 Markdown(如适用):使用清理脚本去掉不适合朗读的内容,输出清理后的文本文件。
  3. 生成音频:调用 piper 命令,通过 -m 指定模型、-i 指定清理后的输入文件、-f 指定输出文件,并用 --length-scale、--sentence-silence、--volume 设置参数。字面文本可通过 echo 管道传入。
  4. 验证输出:检查输出文件存在且非空,可选使用 ffprobe 获取时长。
  5. 链接音频:按 ![[The Converted Audio File.wav]] 语法将音频与原始输入关联。

文档还提供了完整示例,包括 Markdown 转音频(默认设置)、文本转音频的一行命令,以及批量处理目录中所有 .md 文件的循环脚本。

语音模型

模型存放在 ~/piper-voices/,每个语音需要 .onnx 和 .onnx.json 两个文件。默认已安装 en_US-amy-medium(美式英语女声)。可从 https://huggingface.co/rhasspy/piper-voices 下载更多语音。添加语音的示例命令使用 curl 下载 lessac 语音的模型与配置文件,预览语音的地址为 https://rhasspy.github.io/piper-samples/。

错误处理

  • command not found: piper:piper 不在 PATH 中,可使用完整路径 /Users/katiemulliken/.local/bin/piper。
  • Model file not found:缺少 .onnx 文件,需确认语音存在于 ~/piper-voices/。
  • Config file not found:缺少 .onnx.json,需下载匹配的配置文件。
  • Input file not found:输入路径无效,需检查文件路径是否存在。

限制

资料未说明 Piper 技能的收费、价格、平台范围、具体效果评测或与其他 TTS 的对比。输入文件如为 Markdown 需依赖清理脚本,路径示例中使用了特定用户目录,实际使用需按本地环境调整。支持的语音语言范围以 rhasspy/piper-voices 仓库提供的模型为准,具体语音清单资料中未完整列出。