补充说明
spd-say 是 speech-dispatcher 套件的命令行客户端,把文本交给后台的 speech-dispatcher 服务,由它调用 eSpeak NG、Festival 等语音合成引擎朗读出来。桌面阅读器(Orca)和许多无障碍程序也共用这套服务。
它适合做无障碍提示、脚本执行完成的通知,或在无图形环境下快速试听语音合成效果。服务未运行时,spd-say 会尝试自动启动它;若失败,可用 systemctl --user status speech-dispatcher 检查用户级服务状态。
常用可调项包括语速 -r、音高 -p、音量 -i 和语音类型 -e。-w 会等待朗读结束再返回,适合在脚本中串行播放多条通知;-S 和 -C 分别用于停止和取消当前队列。
语法
spd-say [选项] "要朗读的文本"
选项
-w, --wait:等待朗读完成后再退出-l, --language 语言:指定语言,如zh、en-r, --rate 数值:语速,范围约 -100 到 100-p, --pitch 数值:音高,范围约 -100 到 100-i, --volume 数值:音量,范围约 -100 到 100-e, --voice-type 类型:语音类型,如male1、female1-o, --output-module 模块:指定输出模块-x, --ssml:把输入按 SSML 标记解析-S, --stop:停止当前朗读-C, --cancel:取消队列中的朗读任务
实例
# 朗读一句中文
spd-say -l zh "备份已经完成"
# 放慢语速并等待读完
spd-say -r -30 -w "正在检查磁盘"
# 调整音高与语音类型
spd-say -p 20 -e female1 "Build finished"
# 停止当前正在播放的语音
spd-say -S
# 查看可用的输出模块
spd-say -o help