在查看了一些服务/工具之后,我得出了一个结论.大多数文字转语音工具都太技术化,机器人 - 换句话说,质量差的c语音.
是的,最重要的是,看起来它们带有"硬编码"的语音模板,因此缩短了多样性/定制.有些工具可以让你设定阅读速度和音高',但这还不够.
我对情绪方面背后的问题的猜测 - 很难从纯文本中判断情绪,如果只是一两句话就更难判断.此外,好的电脑是机器 - 机器没有情感,但这是一个不同的故事.
困扰我的最重要的是质量.例如,有一些这样的工具,用于切断单词的顶点,从而产生这些技术性的声音.感觉像句子结构有问题.是的,当人们正在研究这样的工具时,我想知道,是什么让他们不再努力改善那些...切断顶点,这不是一个小问题!另外,必须记住,一个好的,高质量的文字转语音软件是值得的,嗯......很多!因此产生了一个非常有利可图的产品.
哦,在流利的情况下,我隐藏着问题,感叹等等.(可能那些不适用于流利,但我不是英语,请原谅我,如果是这样的话.)
- Loquendo:缺乏声音变化,有一些轻微的顶点/流畅性问题(取决于句子),在例子中太多的咳嗽和借口!
- Nuance Vocalizer:虽然仍然缺乏多样性,但一些提供的声音是值得的.
- eSpeak:那里最好的机器人之一,因此节目标识(?!)
- 自然读者(哑巴自动播放!!):嗯,它有一定的流畅性,但仍然有技术感觉开始.
- iSpeech:好笑的时候用英文文本将声音设置为日语.我打赌日本人对此不太满意.
- 倒谱 + 增强的声音 ......加上增强的声音会带来好的蹩脚结果,所以,除了5个以上的声音外,什么都没有增强.
- AT&T:流畅的流利,但是在句子结尾和过多的机器人方面遇到了问题!
- LumenVox TTS:看起来像是来自具有大量语音工具的背景,但仍然会产生机器人声音.
- 还有一些......
如果我错过了值得一看的东西,请分享.可以是免费的,商业的,超级昂贵的...只要它有效,我很感兴趣!
问题(-s)..
我正在尝试将单词转换为语音.
直到现在我都试过这个:
<?php
$text = "Hello this is a test for voice api of google";
// Name of the MP3 file generated using the MD5 hash
$file = md5($text);
// Save the MP3 file in this folder with the .mp3 extension
$file = "audio/" . $file .".mp3";
if($file) {
echo "created";
} else {
echo "not created";
}
// If the MP3 file exists, do not create a new request
if (!file_exists($file)) {
$mp3 = file_get_contents( …Run Code Online (Sandbox Code Playgroud) 我想知道是否有办法将文本语音数据保存为mp3或Wav文件格式以便以后播放?
SpeechSynthesizer reader = new SpeechSynthesizer();
reader.Rate = (int)-2;
reader.Speak("Hello this is an example expression from the computers TTS engine in C-Sharp);
Run Code Online (Sandbox Code Playgroud)
我试图将其保存在外部,以便我可以稍后再播放.做这个的最好方式是什么?
我曾经使用此网址致电Google Translate TTS下载音频文件:http://translate.google.com/translate_tts?tl = zh- CN& q = Hello + world!
然而谷歌改变了工作方式,因此我无法再下载音频文件.我已经注册了Google Translate API V2的免费试用版,但无法找到如何获取TTS音频文件.
任何的想法?
当speak在Web Speech API中使用该功能时,在Chrome中,语音在几秒钟之后突然停止,在给予它的文本中间,在一个看似随机的地方(没有到达终点).这只发生在Chrome(适用于Firefox),在两台不同的计算机/系统上进行测试.
看看这个jsfiddle看/听:https://jsfiddle.net/fv9ochpq/
您可以看到SpeechSynthesis对象.speaking标志在停止讲话后保持打开(true).
我没有看到传递给话语的文本有任何记录限制.这是Google Chrome错误吗?顺便说一下,自2014年以来我就已经知道了这一点 - 当时我试图将语音功能添加到我制作的浏览器扩展中(那时它是可用于Chrome扩展的TTS API - 同样的事情也发生在那里),但最终还没有不要因为这个明显的错误而这样做.现在我想要克服这个问题 - 如果这是一个错误,我会感谢任何人指导我到最好的地方报告它.
编辑:它似乎在大约15秒后停止.每运行14秒添加一个间隔.resume()似乎"修复"了这个.请参阅:https ://jsfiddle.net/fv9ochpq/1/
但这是一个黑客攻击.
javascript google-chrome text-to-speech speech-synthesis webspeech-api
将以下SSML(语音合成标记语言)文档传递给com.svox.pico TextToSpeech引擎会导致读取XML主体,但无法通过音素元素或强调元素进行控制.这个结果(没有明显的SSML控制)在运行Android 2.2的Nexus One以及运行SDK级别为8的AVD的模拟器上是相同的.
String text = "<?xml version=\"1.0\"?>" +
"<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" " +
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
"xsi:schemaLocation=\"http://www.w3.org/2001/10/synthesis " +
"http://www.w3.org/TR/speech-synthesis/synthesis.xsd\" " +
"xml:lang=\"en-US\">" +
"tomato " +
"<phoneme alphabet=\"ipa\" ph=\"t&#x259;mei&#x325;&#x27E;ou&#x325;\"> tomato </phoneme> " +
"That is a big car! " +
"That <emphasis> is </emphasis> a big car! " +
"That is a <emphasis> big </emphasis> car! " +
"That is a huge bank account! " +
"That <emphasis level=\"strong\"> is </emphasis> a huge bank account! …Run Code Online (Sandbox Code Playgroud) 我试图通过SSML和.NET SpeechSynthesizer(System.Speech.Synthesis)改变语音文本的音高
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
PromptBuilder builder = new PromptBuilder();
builder.AppendSsml(@"C:\Users\me\Documents\ssml1.xml");
synthesizer.Speak(builder);
Run Code Online (Sandbox Code Playgroud)
ssml1.xml文件的内容是:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ssml:speak version="1.0"
xmlns:ssml="http://www.w3.org/2001/10/synthesis"
xml:lang="en-US">
<ssml:sentence>
Your order for <ssml:prosody pitch="+30%" rate="-90%" >8 books</ssml:prosody>
will be shipped tomorrow.
</ssml:sentence>
</ssml:speak>
Run Code Online (Sandbox Code Playgroud)
价格被认可:"8本书"比其他人说得慢得多,但无论"音调"的价值是多少,都没有区别!允许的值可以在这里找到:
http://www.w3.org/TR/speech-synthesis/#S3.2.4
我错过了什么或正在改变微软语音引擎不支持的音调?
弗里茨
据我所知,Android目前有7个音频流:
STREAM_ALARM (for alarms)
STREAM_DTMF (for DTMF Tones)
STREAM_MUSIC (for music playback)
STREAM_NOTIFICATION (for notifications)
STREAM_RING (for the phone ring)
STREAM_SYSTEM (for system sounds)
STREAM_VOICE_CALL (for phone calls)
Run Code Online (Sandbox Code Playgroud)
我也知道可以明确告诉TTS引擎使用哪个流:
params.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
mTts.speak(text, TextToSpeech.QUEUE_ADD, params);
Run Code Online (Sandbox Code Playgroud)
但是,我没有找到的是当我没有指定音频流时默认使用的流.
Android的TextToSpeech引擎的默认音频流是什么?
有没有办法查询Android的TextToSpeech引擎当前正在使用哪个流?
UPDATE: TextToSpeech.Engine有一个常量定义为DEFAULT_STREAM,但不清楚它所引用的7个流中的哪一个.但它具有与STREAM_MUSIC相同的十六进制值(0x3).是这个吗?
我试图通过指示强调等来更清楚地说明TTS句子.我正在使用Chrome TTS API,这表明除了原始文本之外它还接受SSML格式的文档.
经过多次尝试,并在网上阅读了一些评论,看起来实际上并不支持,或者这可能取决于个人的实施声音.
有人知道吗:
谢谢!
api accessibility google-chrome text-to-speech google-chrome-extension