如何使用命令行进行文本转语音输出?

如何使用命令行进行文本转语音输出?

如何获得输入文本的语音输出通过使用命令行?

还可以改变语速、音调、音量等使用简单命令

答案1

按降序排列受欢迎程度

  • 使用 GNUstep 语音引擎将文本转换为可听见的语音。

    sudo apt-get install gnustep-gui-runtime
    say "hello"
    
  • 节日通用多语言语音合成系统。

    sudo apt-get install festival
    echo "hello" | festival --tts
    
  • spd 检测将文本转语音输出请求发送到语音调度器

    sudo apt-get install speech-dispatcher
    spd-say "hello"
    
  • 说话是一个多语言软件语音合成器。

    sudo apt-get install espeak
    espeak "hello"
    

答案2

espeak是一个很好的小工具。

我只是喜欢在命令行中使用它。您可能会发现它与 Pulseaudio 冲突,因此我使用了一个冗长的版本,这样就无需正确设置它了。

sudo apt-get install espeak
espeak --stdout "this is a test" | paplay

espeak --help将向您显示校准阅读速度、音调、声音等的选项。

当你做笔记时,将它们保存为文本文件,然后:

echo "these are my notes" > text.txt
espeak --stdout -f text.txt > text.wav
paplay text.wav # you should hear "these are my notes"

然后,您可以使用 ffmeg 等工具将其从 PCM 压缩为更易于管理的格式,例如 MP3 或 OGG。但那是另一回事。

答案3

man spd-say

姓名
       spd-say - 向语音调度器发送文本转语音输出请求

概要
       spd-say [选项]“一些文本”

描述
       spd-say 将文本转语音输出请求发送到语音调度进程,语音调度进程处理该请求并输出结果
       至音频系统。

选项
       -r,--速率
              设置语音速率(-100 至 +100 之间,默认值:0)

       -p,--音高
              设置语音的音调(-100 到 +100 之间,默认值:0)

       -i,--音量
              设置语音的音量(强度)(-100 到 +100 之间,默认值:0)

因此您可以通过以下命令进行文本转语音:

spd-say "<type text>"

前任:

spd-say "Welcome to Ubuntu Linux"

你也可以设置语速、音调、音量等。参见手册页。

答案4

Mbrola 自 11.10 起不再工作。

SVOX (pico) 工具易于安装、易于使用,并且可在 Ubuntu 中提供高品质的声音。安装它:

sudo apt-get install libttspico0 libttspico-utils libttspico-data

更简单的是,你可以将 LibreOffice 与 SVOX (pico) 工具结合使用,只需安装“阅读文本”扩展您将获得此款优秀 TTS 软件的“GUI”:

设置阅读文本扩展的选项使用工具 - 附加组件 - 读取选择....使用 /usr/bin/python 作为外部程序。选择包含令牌 (PICO_READ_TEXT_PY) 的命令行选项。

相关内容