Ubuntu系统入门教程-整合Festival实现文本-語音(TTS)合成
Ubuntu系统入门教程-安装Festival实现文本-語音(TTS)合成
说明:
- 介绍如何安装Festival实现文本-語音(TTS)合成
- 测试环境:ubuntu20.04
- 相关软件语音包,可以从百度下载,提取码:5v6d
步骤:
- 安装festival及相关包
sudo apt install festival festlex-cmu festlex-poslex festlex-oald
测试
- 命令实现文字转为语音输入
echo "It's such a beautiful day! Why are you in front of the computer?" | festival --tts
date '+%A, %B %e, %Y' | festival --tts
- 命令实现文字保存为语音文件
echo "It's such a beautiful day! Why are you in front of the computer?" | text2wave -scale 50 -o beautiful_day.wav
date '+%A, %B %e, %Y' | text2wave -scale 50 -o date.wav
- 在festival提示符下执行
$ festival
Festival Speech Synthesis System 2.5.0:release December 2017
Copyright (C) University of Edinburgh, 1996-2010. All rights reserved.
clunits: Copyright (C) University of Edinburgh and CMU 1997-2010
clustergen_engine: Copyright (C) Carnegie Mellon University 2005-2017
hts_engine:
The HMM-Based Speech Synthesis Engine "hts_engine API"
hts_engine API version 1.07 (http://hts-engine.sourceforge.net/)
Copyright (C) The HMM-Based Speech Synthesis Engine "hts_engine API"
Version 1.07 (http://hts-engine.sourceforge.net/)
Copyright (C) 2001-2012 Nagoya Institute of Technology
2001-2008 Tokyo Institute of Technology
All rights reserved.
All rights reserved.
For details type `(festival_warranty)'
festival> (SayText "Hello")
#<Utterance 0x7fc06a4258b0>
安装标准 Festvox 双音素声音
- 这些声音由 Festvox 项目提供,有些声音有 8k 和 16k 版本。
- 这是音频合成的输出频率。 16k 版本具有更高质量的输出和更好的声音。
- 四种英语语音是:
sudo apt install festvox-don festvox-rablpc16k festvox-kallpc16k festvox-kdlpc16k
安装增强的 MBROLA 声音
- 这些声音由 MBROLA 项目提供,该项目由比利时 Faculté Polytechnique de Mons 的 TCTS 实验室运营。
- 更多语音库查看github地址 ,使用说明
- 它们提供多种语言的多种声音,听起来比 Festvox 双音素声音好得多
- 要使用 MBROLA 语音,我们需要三个部分
- (1.) 安装mbrola,它解析Festival程序提供的令牌流并将音频数据返回给Festival
- (2.) MBROLA 语音
- (3.) Festvox 包装器让Festival使用声音。
- 安装mbrola
sudo apt install mbrola
- 下载us语音包
wget -c https://bitbucket.csiro.au/projects/CASSSOFT/repos/cs-studio/raw/applications/plugins/org.csstudio.utility.speech.mbrola/mbrola_bin/us1-980512.zip?at=a647f5a8de0e05edac363574136ff91a5cc7e4e1 -O us1-980512.zip
wget -c https://bitbucket.csiro.au/projects/CASSSOFT/repos/cs-studio/raw/applications/plugins/org.csstudio.utility.speech.mbrola/mbrola_bin/us2-980812.zip?at=a647f5a8de0e05edac363574136ff91a5cc7e4e1 -O us2-980812.zip
wget -c https://bitbucket.csiro.au/projects/CASSSOFT/repos/cs-studio/raw/applications/plugins/org.csstudio.utility.speech.mbrola/mbrola_bin/us3-990208.zip?at=a647f5a8de0e05edac363574136ff91a5cc7e4e1 -O us3-990208.zip
- 下载festvox语音包
wget -c http://www.festvox.org/packed/festival/1.96/festvox_us1.tar.gz
wget -c http://www.festvox.org/packed/festival/1.96/festvox_us2.tar.gz
wget -c http://www.festvox.org/packed/festival/1.96/festvox_us3.tar.gz
- 其他地址https://www.cstr.ed.ac.uk/downloads/festival/1.95/
- 解压声音
unzip -x us1-980512.zip
unzip -x us2-980812.zip
unzip -x us3-990208.zip
tar xvf festvox_us1.tar.gz
tar xvf festvox_us2.tar.gz
tar xvf festvox_us3.tar.gz
- 安装声音和包装器
sudo mkdir -p /usr/share/festival/voices/english/us1_mbrola/
sudo mkdir -p /usr/share/festival/voices/english/us2_mbrola/
sudo mkdir -p /usr/share/festival/voices/english/us3_mbrola/
sudo mv us1 /usr/share/festival/voices/english/us1_mbrola/
sudo mv us2 /usr/share/festival/voices/english/us2_mbrola/
sudo mv us3 /usr/share/festival/voices/english/us3_mbrola/
sudo mv festival/lib/voices/english/us1_mbrola/* /usr/share/festival/voices/english/us1_mbrola/
sudo mv festival/lib/voices/english/us2_mbrola/* /usr/share/festival/voices/english/us2_mbrola/
sudo mv festival/lib/voices/english/us3_mbrola/* /usr/share/festival/voices/english/us3_mbrola/
- 删除临时目录
cd ../
rm -rf mbrola_tmp/
安装增强的 CMU 声音
- 这些声音是由卡内基梅隆大学语言技术研究所开发的。
- 它们听起来比双音素和 MBROLA 的声音好得多。
- 下载语音库
mkdir cmu_tmp
cd cmu_tmp/
wget -c http://festvox.org/cmu_arctic/cmu_arctic/packed/cmu_us_awb_arctic-0.90-release.tar.bz2
wget -c http://festvox.org/cmu_arctic/cmu_arctic/packed/cmu_us_bdl_arctic-0.95-release.tar.bz2
wget -c http://festvox.org/cmu_arctic/cmu_arctic/packed/cmu_us_clb_arctic-0.95-release.tar.bz2
wget -c http://festvox.org/cmu_arctic/cmu_arctic/packed/cmu_us_jmk_arctic-0.95-release.tar.bz2
wget -c http://festvox.org/cmu_arctic/cmu_arctic/packed/cmu_us_rms_arctic-0.95-release.tar.bz2
wget -c http://festvox.org/cmu_arctic/cmu_arctic/packed/cmu_us_slt_arctic-0.95-release.tar.bz2
- 解压声音
for t in `ls cmu_*` ; do tar xf $t ; done
rm *.bz2
- 安装声音
sudo mkdir -p /usr/share/festival/voices/english/
sudo mv * /usr/share/festival/voices/english/
- 更改目录名
for d in `ls /usr/share/festival/voices/english` ; do
if [[ "$d" =~ "cmu_us_" ]] ; then
sudo mv "/usr/share/festival/voices/english/${d}" "/usr/share/festival/voices/english/${d}_clunits"
fi ; done
- 删除临时目录
cd ../
rm -rf cmu_tmp/
安装增强的 Nitech HTS 声音
- 注意:不幸的是,这些声音需要 Festival 1.95
- 这些声音是由名古屋工业大学主办的 HTS 工作组制作的。
- 他们产生了非常优质的声音,占用很少的磁盘空间。
- 就质量和大小而言,可能是可用的最佳(非商业)英语声音。
- 下载语音包
mkdir hts_tmp
cd hts_tmp/
wget -c http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_awb_arctic_hts-2.1.tar.bz2
wget -c http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_bdl_arctic_hts-2.1.tar.bz2
wget -c http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_clb_arctic_hts-2.1.tar.bz2
wget -c http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_rms_arctic_hts-2.1.tar.bz2
wget -c http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_slt_arctic_hts-2.1.tar.bz2
wget -c http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_jmk_arctic_hts-2.1.tar.bz2
wget -c http://hts.sp.nitech.ac.jp/archives/1.1.1/cmu_us_kal_com_hts.tar.gz
wget -c http://hts.sp.nitech.ac.jp/archives/1.1.1/cstr_us_ked_timit_hts.tar.gz
- 解压语音包
for t in `ls` ; do tar xvf $t ; done
- 安装语音包
sudo mkdir -p /usr/share/festival/voices/us
sudo mv lib/voices/us/* /usr/share/festival/voices/us/
sudo mv lib/hts.scm /usr/share/festival/hts.scm
- 删除临时目录
cd ../
rm -rf hts_tmp/
测试声音并选择默认声音
- 要获取已安装的所有声音的列表,您只需查看 /usr/share/festival/voices 下的目录:
for d in `ls /usr/share/festival/voices` ; do ls "/usr/share/festival/voices/${d}" ; done
- 或者在提示符下运行
festival> (voice.list)
(us1_mbrola
us3_mbrola
us2_mbrola
nitech_us_slt_arctic_hts
nitech_us_jmk_arctic_hts
nitech_us_clb_arctic_hts
nitech_us_rms_arctic_hts
nitech_us_bdl_arctic_hts
nitech_us_awb_arctic_hts)
- 测试播放不同声音
- 要选择语音,请将前缀“voice_”添加到语音名称,并用括号括起来:
festival> (voice_us2_mbrola)
festival> (SayText "Hello from Ubuntu")
festival> (tts "story.txt" nil)
festival> (intro)
- 选择默认声音
festival> (set! voice_default 'voice_us2_mbrola)
与 PulseAudio、ESD 或 ALSA 配合使用
默认情况下,festival 尝试使用 OSS 将语音合成到 /dev/dsp。
要使其与 ESD、PulseAudio 或 ALSA 一起使用,您有两种选择。
第一个是使用包装器调用festival,第二个是让festival 在内部尝试使用其中一个输出。
第一种方法的优点是您可以随时使用 esd、pluseaudio 或 alsa 包装器,而无需编辑配置文件。
第二种方法的优点是你不必记得调用包装器——直接运行。
配置总是使用 ESD or PulseAudio
编译vim /etc/festival.scm或 vim ~/.festivalrc
增加如下行到文件最后
(Parameter.set 'Audio_Method 'esdaudio)
- 配置总是使用 ALSA
- 不能同时使用ALSA和ESD
- 编译vim /etc/festival.scm或 vim ~/.festivalrc
- 增加如下行到文件最后
(Parameter.set 'Audio_Command "aplay -D plug:dmix -q -c 1 -t raw -f s16 -r $SR $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Required_Format 'snd)
在某些配置中,可能需要删除上述 aplay 命令的“-D plug:dmix”部分
测试
#进入提示符
festival
#输出文字语音
festival>(SayText "Hello")
#输入文本语音
festival>(tts "FILENAME" nil)
参考:
- http://festvox.org/docs/manual-1.4.3/festival_29.html
- https://blog.csdn.net/derryzhang/article/details/5768950
- http://awesome-zh.nocode.site/services/festival.html
- http://festvox.org/
- https://forum.ubuntu.org.cn/viewtopic.php?t=217065
- https://ubuntuforums.org/showthread.php?t=751169
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号