标签: festival

高品质的文字转语音引擎,供个人使用

我正在寻找一种我能负担得起的高品质TTS发动机(假设不到1000美元).到目前为止,我已尝试使用默认语音进行flitefestival.然而,虽然结果肯定是可以理解的,但技术文本很难遵循.

LoquendoReadspeaker的 商用TTS解决方案听起来更好.然而,这些公司似乎并不愿意将产品卖给凡人 - 我无法在任何一个主页上找到价格.

那么,什么是适合个人使用的优质TTS解决方案?

text-to-speech festival flite

28
推荐指数
3
解决办法
8万
查看次数

Text2wave节日不通过nginx php exec工作

我正在尝试在nginx服务器上运行PHP命令text2wave.

问题是命令只是默默地退出而没有按预期工作.它也没有显示任何错误.

这是代码:

<?php
$result = `/usr/bin/text2wave --help`;
var_dump($result);
Run Code Online (Sandbox Code Playgroud)

如果我通过shell中的php命令运行脚本(作为普通用户),它按预期工作.但是,如果我通过nginx通过http请求运行它,var_dump将返回NULL(错误日志文件中也没有日志)

谢谢你的帮助!

php nginx festival

10
推荐指数
1
解决办法
708
查看次数

Emacs中的文本到语音转换

我不是盲目的,我只是想让我的Windows机器读取缓冲区的内容.以下是基本要求:

  • 阅读任何英文文本缓冲区.
  • 随时暂停阅读并随时恢复(当有人走进我的办公室时,不要等待几分钟才能完成大缓冲).
  • 在播放时调整回读速度.
  • 突出显示当前正在读取的文本(可选)

我找到了几个可能的解决方案:

  • Emacspeak:专为盲人设计.看起来像一个独立的程序,而不是Emacs插件
  • festival.el:需要节日.我找不到Windows Binaries for Festival.谁有他们?
  • 我也可以写自己的.文字转语音(TTS)库现在很多.交互式暂停功能可能是最大的技巧,但必须有一些库可以做到这一点.

哪个选项是最好的计划?我不想在这里进行为期一周的项目.Windows中的编译节是一个痛苦的实验.对于我想要的东西,Emacspeak看起来有点矫枉过正.

emacs text-to-speech festival

6
推荐指数
1
解决办法
1704
查看次数

如何使用Python子进程终止进程组

我试图使用Python子进程执行以下等效操作:

>cat /var/log/dmesg | festival --tts &
[1] 30875
>kill -9 -30875
Run Code Online (Sandbox Code Playgroud)

请注意,我正在杀死进程(由负号前面指示进程ID号),以便终止所有子进程Festival启动.

在Python中,我目前有以下代码,其中两个进程是通过管道创建和链接的.

process_cat = subprocess.Popen([
    "cat",
    "/var/log/dmesg"
], stdout = subprocess.PIPE)
process_Festival = subprocess.Popen([
    "festival",
    "--tts"
], stdin = process_cat.stdout, stdout = subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)

我应该如何以与上面显示的Bash方式相同的方式杀死这些进程及其子进程?以下方法是不够的,因为它不会杀死子进程:

os.kill(process_cat.pid, signal.SIGKILL)
os.kill(process_Festival.pid, signal.SIGKILL)
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方法来做到这一点,也许只使用一个过程?

python subprocess kill child-process festival

5
推荐指数
1
解决办法
6844
查看次数

节日2.4:为什么有些声音不适合唱歌模式?

voice_kal_diphone并且voice_ral_diphone在唱歌模式下正常工作(有声音输出,并且音高对于指定的音符是正确的).

voice_cmu_us_ahw_cg 和其他CMU声音不能正常工作 - 有声音输出,但音高不会根据指定的音符改变.

是否可以使用更高质量的CMU声音获得正确的输出?

工作(音高影响)输出的命令行是:

text2wave -mode singing -eval "(voice_kal_diphone)" -o song.wav song.xml
Run Code Online (Sandbox Code Playgroud)

非工作(音高不受影响)输出的命令行是:

text2wave -mode singing -eval "(voice_cmu_us_ahw_cg)" -o song.wav song.xml
Run Code Online (Sandbox Code Playgroud)

这是song.xml:

<?xml version="1.0"?>
<!DOCTYPE SINGING PUBLIC "-//SINGING//DTD SINGING mark up//EN" "Singing.v0_1.dtd" []>
<SINGING BPM="60">
 <PITCH NOTE="A4,C4,C4"><DURATION BEATS="0.3,0.3,0.3">nationwide</DURATION></PITCH>
 <PITCH NOTE="C4"><DURATION BEATS="0.3">is</DURATION></PITCH>
 <PITCH NOTE="D4"><DURATION BEATS="0.3">on</DURATION></PITCH>
 <PITCH NOTE="F4"><DURATION BEATS="0.3">your</DURATION></PITCH>
 <PITCH NOTE="F4"><DURATION BEATS="0.3">side</DURATION></PITCH>
</SINGING>
Run Code Online (Sandbox Code Playgroud)

您可能还需要此补丁singing-mode.scm:

@@ -339,7 +339,9 @@
 (defvar singing-max-short-vowel-length 0.11)

 (define (singing_do_initial utt token)
-  (if (equal? (item.name token) "")
+ …
Run Code Online (Sandbox Code Playgroud)

text-to-speech festival

5
推荐指数
1
解决办法
644
查看次数

/ usr/bin/ld:找不到-llibeststring.a

我在我的程序中使用了Festival TTS c ++ API.我已经从http://www.cstr.ed.ac.uk/downloads/festival/2.0.95/下载了所有文件, 并在我的UBUNTU 10.04上成功安装了festival和speech_tools

现在编译我的c ++程序时gcc给出错误:

g++ -L/usr/lib -L/home/peeyush/Desktop/festival/src/lib -L/home/peeyush/Desktop/speech_tools/lib -o"peeyush" ./src/peeyush.o -llibeststring.a -llibestbase.a -llibestools.a -llibFestival.a
/usr/bin/ld: cannot find -llibeststring.a
collect2: ld returned 1 exit status
make: *** [peeyush] Error 1
Run Code Online (Sandbox Code Playgroud)

所以请帮我解决这个错误.

-谢谢

Peeyush Chandel(印度)

c++ ubuntu festival

2
推荐指数
1
解决办法
2689
查看次数

爆炸首字母缩略词以确保合成器正确读取它们?

如果我提供一个语音合成器(节日,在这种情况下,但它适用于所有),下面的文字:

"在美国的USPGA锦标赛上,BBC的记者去了MIA".它写着"在美国的uspga锦标赛中,BBC的记者去了mia".

换句话说,我猜这是因为它是一组辅音,它正确地读取"BBC",但却从其他人那里得到"单词".

我想,最简单的方法是通过一个php脚本来运行它,它寻找2个或更多的大写字母,并简单地将这个单词"爆炸"成空格,如USPG A.

我意识到这会导致像"我告诉他不要这样做"这样的事情的奇怪,但在新闻报道中往往会发生更少.

这就是事情; 我可以"爆炸"一个词好吧,问题是,我是那些尽管经过几个月的尝试,却无法理解REGEX某些方面的人之一.在这种情况下,它正在寻找:在大写字母中彼此相邻的两个或多个字母.

我之前给出所有前导码的原因是万一有更好的方法可以做到这一点我没有找到或通过 - 或许是一个词汇或其他东西的缩写词.

php regex text-to-speech speech-synthesis festival

0
推荐指数
1
解决办法
125
查看次数