zoukankan      html  css  js  c++  java
  • Festival

    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

    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
     
    sztom osoft@qq.com CC-BY-NC-SA
  • 相关阅读:
    Go语言学习之1 基本概念、环境搭建、第一个Go程序
    go环境搭建
    go 圣经阅读笔记之-入门
    RabbitMQ
    图片选择并使用base64展示
    关于c# hashtable的一个注意点
    js image to base64 摘录
    linq to sql 获取sql与参数添加到日志中
    时钟的实现
    无限级菜单的实现
  • 原文地址:https://www.cnblogs.com/sztom/p/14960473.html
Copyright © 2011-2022 走看看