安装和配置Festival以使用Asterisk PBX

时间:2020-02-23 14:30:33  来源:igfitidea点击:

与Asterisk Pbx或者用于路由呼叫的任何媒体服务器一起使用时,文本到语音的转换非常重要。文本到语音转换工具用于将单词字符串转换为音频,然后可以使用该系统向呼叫者播放。文字转语音不能代替专业录制的提示。

Festival是免费的,可在所有Linux系统上使用文本转语音实用程序。不建议将其用于生产,因为其声音质量不够清晰,但经常用于开发和测试目的。对于生产用途,我们可以查看Cepstral。

在CentOS和RHEL上安装Festival

sudo yum install epel-release
sudo yum install festival

在Ubuntu上安装Festival

sudo apt update
sudo apt-get install festival

配置Festival与Asterisk一起使用

安装Festival之后,我们希望对其进行配置以允许与Asterisk PBX一起使用。为此,我们只需要编辑/usr/share/festival /目录中的Festival.scm文件。使用我们拥有的任何文本编辑器打开文件。我将使用vim:

$sudo vim /usr/share/festival/lib/festival.scm

在最后一行的上方添加以下文本; (提供节日):

(define (tts_textasterisk string mode)
(let ((wholeutt (utt.synth (eval (list 'Utterance 'Text string)))))
(utt.wave.resample wholeutt 8000)
(utt.wave.rescale wholeutt 5)
(utt.send.wave.client wholeutt)))

保存更改并重新启动Festival服务器

sudo festival_server 2>&1 > /dev/null &

转到Asterisk源目录,并验证是否在"应用程序"标题下选择了app_festival应用程序。如果没有使用,请使用make menuselect命令安装Festival()diaplan复本。

$sudo make menuselect

确保其选中。

然后运行:

sudo make install

必须配置Asterisk以连接到Festival.conf文件上的Festival服务器。在Asterisk源目录中有一个示例配置文件,请将其复制到/etc/asterisk /目录中然后进行编辑。

sudo cp configs/samples/festival.conf.sample /etc/asterisk/festival.conf

如果两个服务器均在本地计算机上运行,则默认配置足以连接到Festival服务器。如果Festival服务正在远程设备上运行,请很好地更改主机参数。所有其他配置参数将保留为默认值。

sudo vim /etc/asterisk/festival.conf

必要时进行更改。

要验证Festival()拨号计划应用程序正在运行,请在Asterisk命令行界面上执行以下命令。

core show application festival

如果没有任何输出,请首先加载app_festival.so模块:

module load app_festival.so 
module show app_festival.so

我们可以在/usr/lib/asterisk/modules中检查文件的可用性。如果我们使用本教程来安装Asterisk,则可能已经意识到我编译的星号的libdir为libdir =/usr/lib64. 在这种情况下,模块将打开

ls -lh /usr/lib64/asterisk/modules/app_festival.so

其他:

ls -lh /usr/lib/asterisk/modules/app_festival.so

从这里。我们可以创建如下所示的简单拨号计划进行测试:

exten => 110,1,Verbose(2,Performing Festival test)
same => n,Answer()
same => n,System(echo "We are now doing Festival Test after successful installation" | /usr/bin/text2wave -scale 1.5 -F 8000 -o /tmp/test.wav)
same => n,Playback(/tmp/test)
same => n,System(rm -f /tmp/test.wav)
same => n,Hangup()

如果我们拨打分机号码110,它将自动记录字符串中的test.wav音频文件。成功安装后,我们现在正在执行Festival Test,并将其回放给我们。