Festival

本文详细介绍如何在Arch Linux上安装、配置Festival语音合成系统,包括设置声音服务器、调整语音选项,以及解决常见问题如/dev/dsp权限问题、速度调整和命令找不到等。此外,还介绍了Arch内建的语音合成器和实用命令列表。
部署运行你感兴趣的模型镜像
1. Installation
2. Configuration配置
	2.1 Sound server 声音服务器
	2.2 Voices声音
	2.3 Manually手动
3. Usage用法
	3.1 使用festival
	3.2 Interactive交互的
	3.3 添加帮助信息
4. Troubleshooting故障排除
	4.1 无法打开 /dev/dsp
	4.2 Alsa 以错误的速度播放
	4.3 找不到命令 aplay
	4.4 Say报错
	4.5. Server
5 Speech-synthesizers语音合成器
	5.1 Arch库含有的
	5.2. 包含/usr/bin/命令
注: 上面官方手册是2014年的2.4版本; 当前安装的是2.5版本(2017?)...
Festival是CSTR(语音技术研究中心)开发的通用多语言语音合成系统。它提供了构建语音合成系统的通用框架,并包含各种模块的示例。总的来说,它通过许多 API 提供全文到语音:从 shell 级别,通过 Scheme 命令解释器,作为 C++ 库,从 Java 和 Emacs 接口。Festival是多语言的(目前有英式英语、美式英语、意大利语、捷克语和西班牙语,其他语言在原型中可用。)

1. Installation

$ sudo pacman -Ss festival
extra/festival 2.5.0-4 [installed]
    A general multi-lingual speech synthesis system
community/festival-english 2.5-2
    British and American English Male speaker
community/festival-us 2.5-2
    American Male/Female and Scottish English Male speaker

2. Configuration配置

没有全局/etc/配置文件,但您可以使用您的~/.festivalrc文件配置festival,或直接编辑/usr/share/festival/festival.scm. 这两个都是方案文件,使用方案语法并在每次festival运行时重新运行。

2.1 Sound server 声音服务器

如果来自其他来源的音频已经在播放,则以下内容允许 Festival 工作。添加到您的配置:
对于 PulseAudio:
(Parameter.set 'Audio_Required_Format'aiff)
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "paplay $FILE --client-name=Festival --stream-name=Speech")
对于 ALSA:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

2.2 Voices声音

Arch 将官方语音集分为festival-us (recommended) and festival-english ...
要查看当前安装了哪些声音以及默认设置是什么,请首先进入 Festival 的#Interactive shell(REPL 方案)。要永久更改默认语音,请将其添加到您的配置中,例如:
(set! voice_default voice_cmu_us_rms_cg)
附加到/usr/share/festival/siteinit.scm适用于所有用户。
添加到.festivalrc后, 重新进入, 显示默认声音时会提示...没有定义的错误,但可以正常使用:
festival> voice_default
#<CLOSURE n (let-internal (me) (voice_cmu_us_slt_cg) (begin (require "/usr/share/festival/voices/us/cmu_us_slt_cg/festvox/cmu_us_slt_cg") (if (eq me voice_cmu_us_slt_cg) (error (string-append "autoload: \"" "/usr/share/festival/voices/us/cmu_us_slt_cg/festvox/cmu_us_slt_cg" ".scm\" does not define " (quote voice_cmu_us_slt_cg)))) (apply voice_cmu_us_slt_cg n)))>

2.3 Manually手动

您也可以直接从 Festvox 获得声音。您需要解压缩包含语音的文件夹并将其移动到其中,/usr/share/festival/voices/而判断包含语音的文件夹的方法是在其中查找festvox/子文件夹。然后,您可以通过加载festival提示来测试是否找到了您的新声音。

3. Usage用法

3.1 使用festival

测试:
$ echo "This is a test!" |festival --tts
读取文本文件:
$ festival --tts /home/tom/sptext.txt
要阅读您用光标突出显示的选择:
$ xsel |festival --tts
注: xsel是用于获取和设置 X 选择的内容命令行程序, 安装: $ sudo pacman -S xsel
将文本文件转换为 mp3 音频:
$ text2wave /home/tom/LoveOurCountry.txt | lame - text.mp3
Txt文件: lines: 19; Words: 294; char: 1554; Bytes: 1556; 
Mp3文件: size: 291.8Kb; 时长: 01:39
用选择的声音录制音频:
$ text2wave -o output.wav -eval '(voice_cmu_us_awb_cg)' /home/tom/LoveOurCountry2.txt
Txt文件: lines: 7; Words: 279; char: 1525; Bytes: 1529; 
Wav文件: size: 3.1Mb; 时长: 01:41
语音报时:
$ saytime
The time is now, almost twenty-five past 4, in the afternoon. 
$ saytime
The time is now, exactly twenty-five past 4, in the afternoon. 
$ saytime
The time is now, just after twenty-five past 4, in the afternoon. 

3.2 Interactive交互的

Festival 有一个交互式提示,可用于测试。键入festival以输入它。以下是一些示例:
显示默认声音:
festival> voice_default
voice_kal_diphone
列出可用的声音:
festival> (voice.list)
(rab_diphone kal_diphone cmu_us_rms_cg cmu_us_slt_cg cmu_us_awb_cg)
要选择另一种声音,请输入。例如: (voice_name)
festival> (voice_cmu_us_rms_cg)
cmu_us_rms_cg
听它说话:
festival> (SayText "Arch makes me happy")
列出可用命令:
festival> help
退出:
festival> (quit)

3.3 添加帮助信息

/usr/share/festival/festdoc.scm
配置文件的(defvar help这部分就是帮助信息了.
在初始默认声音下面,增加新安装的声音名称
  (voice_kal_diphone) Select voice (American Male)
  (voice_cmu_us_rms_cg)  Select voice (US Male s)
  (voice_cmu_us_slt_cg)  Select voice (US Female)
  (voice_cmu_us_awb_cg)  Select voice (Scottish Male)
再次进入festival, 获取帮助就能看到这些选择的提示了
festival> help

4. Troubleshooting故障排除

4.1 无法打开 /dev/dsp

如果节日返回以下错误消息:
Linux: can't open /dev/dsp
请参阅上面的: 2.1 Sound server 声音服务器

4.2 Alsa 以错误的速度播放

如果上述解决方案让您发出吱吱的声音,您可能想尝试更改您的aplay选项:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -Dplug:default -f S16_LE -r $SR $FILE")

4.3 找不到命令 aplay

安装alsa-utils包。

4.4 Say报错

festival> (SayText "Arch makes me happy")
-=-=-=-=-=- EST Warning -=-=-=-=-=-
audio_open_alsa: failed to set hw parameters. Invalid argument.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Segmentation fault (core dumped)
以下内容添加到.festivalrc即可
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

4.5 Server

Install festival-freebsoft-utils(aur) to use Festival with speech-dispatcher (i.e. in Firefox's Reader).

5. Speech-synthesizers语音合成器

5.1 Arch库含有的

festival - 构建语音合成系统的通用框架以及各种模块的示例。总的来说,它提供全文到语音。
espeak — 适用于 50 多种语言的紧凑型语音合成器。
espeak-ng - eSpeak 的分支(由于原始维护者不活动)。
orca — 使用 eSpeak(通过 Speech Dispatcher)为盲人或视障人士提供的屏幕阅读器。
flite - 轻量级语音合成引擎。
kmouth — 语音合成器前端,使无法说话的人可以让他们的计算机说话。
speech-dispatcher - 语音合成的通用接口。它有 eSpeak、Festival 和其他一些语音合成器的后端。

5.2 包含/usr/bin/命令

espeak : espeak
espeak-ng : espeak-ng
espeak-ng : speak-ng
orca : orca
flite : flite
flite : flite_cmu_us_kal16
flite : flite_cmu_us_slt
kmouth : kmouth GUI图形界面
speech-dispatcher : spd-conf
speech-dispatcher : spd-say
speech-dispatcher : spdsend
speech-dispatcher : speech-dispatcher
speech-dispatcher usr/lib/systemd/system/speech-dispatcherd.service

您可能感兴趣的与本文相关的镜像

HunyuanVideo-Foley

HunyuanVideo-Foley

语音合成

HunyuanVideo-Foley是由腾讯混元2025年8月28日宣布开源端到端视频音效生成模型,用户只需输入视频和文字,就能为视频匹配电影级音效

### 配置方法 在使用 CanFestival 时,配置项目以适应不同的硬件平台是一个常见的需求。首先,需要根据目标硬件的特性调整源代码中的配置选项。这通常涉及到修改 Makefile 和相关的头文件,以确保编译器能够正确地识别和利用硬件资源。例如,在针对 RAM 有限的设备(如 PIC 或 AVR 微控制器)时,可以通过启用特定的编译选项来减少内存消耗 [^1]。 ### 使用指南 对于 CanFestival 的使用,初始化 CANopen 协议栈是关键步骤之一。以下是一个简单的初始化示例: ```c int main() { CO_Data master_data; init_master_od(&master_data); // 加载主站对象字典 setNodeId(&master_data, 0x00); // 主站ID=0 // 1. 启动CAN与CANopen协议栈 canInit(BAUD_500K); StartCANOpen(&master_data, NMT_MASTER, TIMERS_FREQ); // 2. 启动从站节点 sendNMTcommand(&master_data, NMT_Start_Node, 0x01); // 3. 主循环:发送控制命令 + 处理PDO while (1) { UNS16 target = 1500; SDO_write(&master_data, 0x01, SLAVE_INDEX_RPM, 0x00, &target, 2, 100); canReceive(); // 处理接收队列 sleep(10); } } ``` 此代码片段展示了如何初始化主站对象字典、设置主站 ID、启动 CAN 和 CANopen 协议栈以及启动从站节点的基本流程 [^2]。 ### 常见问题 #### PDO通信失败排查 当主站发送 RPDO 后从站无响应时,可能的原因包括但不限于网络连接问题、节点 ID 设置错误或对象字典配置不当。解决此类问题的方法通常包括检查物理层连接是否正常、确认所有节点的 ID 是否唯一且正确设置,以及验证对象字典中的相关条目是否符合预期 [^2]。 #### 调试技巧 - **日志记录**:启用详细的日志记录可以帮助追踪协议栈内部的状态变化,有助于快速定位问题。 - **逐步调试**:通过逐步执行代码并观察每一步的结果,可以更准确地确定故障点。 - **使用工具**:利用 CAN 分析仪或其他专用工具进行信号分析,能够提供额外的诊断信息 [^3]。 以上内容涵盖了 CanFestival 的基本配置方法、使用指南以及一些常见问题的解决方案。希望这些信息能帮助您更好地理解和应用 CanFestival 协议栈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值