标签: text-to-speech

Vista中的文本到语音

我是通过使用Delphi在2000/NT/XP中创建OLE对象来实现的,如下所示:

Voice := CreateOLEObject('SAPI.SpVoice');
Voice.speak(...)
Run Code Online (Sandbox Code Playgroud)

但是这在Vista中不起作用,我怎么能让我的程序只是在Vista中说一些文字?

delphi text-to-speech windows-vista

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

如何传递字符串+ web url并使用python接收响应

我正在使用Python和谷歌翻译.当我在翻译时点击Listen时,会生成一个声音文件并传递一个URL,如下所示:http://translate.google.com/translate_tts?tl=en&q=text.

我想使用Python在本地生成URL,然后将它们发送到Web并从Google Translate接收这些声音文件.我尝试了很多URLlib2和URLparse,但我不清楚我需要做些什么来使这项工作.

python text-to-speech google-translate

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

我可以改变不同性别的谷歌翻译的声音吗?

通过一些优秀的答案,我知道我可以使用以下带有属性的URL从文本输入中获取MP3文件:

http://www.translate.google.com/translate_tts?tl=zh-TW&q =我要吃饼干

但MP3上的声音是女性(我正在使用中文).

我可以通过提供其他属性来获得不同性别的语音输出:

http://www.translate.google.com/translate_tts?tl=zh-TW&q =我要吃饼干&性别=男

有谁知道?非常感谢!

text-to-speech google-translate

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

Java:从Google Translate下载Text to Speech

我正在尝试使用Java从Google Translate下载文本到语音.它适用于英语,但对于日语则不成功.以下是我的代码:

try{
            String word="?????";
            word=java.net.URLEncoder.encode(word, "UTF-8");
            URL url = new URL("http://translate.google.com/translate_tts?tl=ja&q="+word);
            HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
            urlConn.addRequestProperty("User-Agent", "Mozilla/4.76");
            InputStream audioSrc = urlConn.getInputStream();
            DataInputStream read = new DataInputStream(audioSrc);
            OutputStream outstream = new FileOutputStream(new File("mysound.mp3"));
            byte[] buffer = new byte[1024];
            int len;
            while ((len = read.read(buffer)) > 0) {
                    outstream.write(buffer, 0, len);                    
            }
            outstream.close();              
}catch(IOException e){
           System.out.println(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

你有什么想法或建议吗?

java text-to-speech

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

Smartband Talk - 音频通过它

我已经尝试了几天通过SmartBand Talk(SWR30)发送Google文本到语音的音频.我在AndroidManifest.xml上拥有正确的权限

PERMISSION_CONTROL_EXTENSION,BLUETOOTH_ADMIN,BLUETOOTH,MODIFY_AUDIO_SETTINGS,BROADCAST_STICKY

我正在使用此代码获取AudioManager:

mAudioManager = (AudioManager) context
            .getSystemService(Context.AUDIO_SERVICE);
Run Code Online (Sandbox Code Playgroud)

并使用AudioManager通过SmartBand Talk讲话,如下所示:

mAudioManager.setSpeakerphoneOn(false);
mAudioManager.startBluetoothSco();
mAudioManager.setMode(AudioManager.MODE_IN_CALL);
mAudioManager.setBluetoothScoOn(true);
speakMethod();
Run Code Online (Sandbox Code Playgroud)

此解决方案适用于某些设备,这意味着我可以通过SmartBand Talk真正听到消息.但对于其他一些设备(如三星Galaxy S5 4.4.2,LG Nexus 5 Lollipop和索尼Z3 4.4.4),这个解决方案不起作用,因为很少有音频通过SmartBand Talk,几乎95%的时间都在手机,而不是配对的蓝牙设备.

我想知道设备扩展是否能够正常使用此方案,其中音频将被发送到蓝牙设备,正确配对电话.

我想知道是否有可能有稳定的东西,在每部手机上工作,或者如果不可能的话.

sony text-to-speech android-audiomanager

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

RegEx忽略或跳过括号内的所有文本和数字

我试图用RegEx来阅读圣经评论中的一些文本,其中一些文章在括号内有很多引文和参考文献(例如,其中一条评论背后几乎所有他用括号内的圣经段落说的,这在神学上是好的,但对于阅读和享受一些早晨散步的目的不是).因此,当我正在听许多文本时,我想忽略它们(括号内的任何内容)(如果需要,我会在以后跟随它们).

这是我现在正在制作的文字示例:

圣经清楚地教导说,上帝爱整个世界(参见:约翰福音3:16和其他圣经书1:3-7,9),而不仅仅是以色列.

我想在播放应用时只听到以下短语:

圣经清楚地教导说,上帝爱整个世界,而不仅仅是以色列.

我需要进入的"模式"是什么?(所有这些奇怪的字符对程序员来说意味着什么,但对我来说没有任何意义).我正在使用名为@Voice Aloud的Android应用.

java regex text-to-speech

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

iOS上的JS语音合成问题

我最近实现了一个基本的Web应用程序,该应用程序依赖于Google的TTS URL生成清晰的MP3文件,以便在前端播放。

从那以后,它就受到了额外的安全检查,这意味着我不得不更新代码库以使用替代方法。

一种此类替代方法是javascript的语音合成API,即SpeechSynthesisUtterance()和window.speechSynthesis.speak('...')。这在我的台式机和笔记本电脑上确实能很好地工作,但是一旦在iOS设备上使用它,音频的速度就会大大提高。

谁能建议我可以解决这个问题?

参见下面的示例代码:

var msg = new SpeechSynthesisUtterance(); 
    msg.text = item.title;
    msg.voice = "Google UK English Male";
    msg.rate = 0.7;
    msg.onend = function(){
        console.log('message has ended');
        $('.word-img').removeClass('img-isplaying');
    };
    msg.onerror = function(){
        console.log('ERROR WITH SPEECH API');
        $('.word-img').removeClass('img-isplaying');
    };
window.speechSynthesis.speak(msg);
Run Code Online (Sandbox Code Playgroud)

javascript text-to-speech speech-synthesis ios

5
推荐指数
2
解决办法
2361
查看次数

节日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
查看次数

TextToSpeech:检查API <21是否在线或离线

我正在尝试实现一个用不同语言读取文本的应用程序.令人惊讶的是,当我使用isLanguageAvailable(Locale loc)方法时,对于尚未下载的Google TTS列表中的语言,它返回true.当我调用speak()方法时,它们甚至被播放.我的结论是,这是因为它们是在线声音.

文档显示您可以通过Voice对象使用方法getFeatures()来了解语音是否在线.但是,Voice类是针对API> = 21实现的.对于API <21,在TextToSpeech类上还有一个getFeatures(Locale loc)方法,它应该返回一个具有不同特征描述的字符串数组.我在不同的引擎和语言环境中尝试了最后一种方法,我通常得到一个空数组.可能这是TTS开发人员可以填写或不填写的额外信息......

那么,我怎么知道tts-locale是否是API <21的在线版本?

android voice text-to-speech google-text-to-speech android-5.0-lollipop

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

SpeechSynthesis.getVoices()不列出Firefox中的声音

我正在开发一个应用程序,要求我在Web浏览器中使用文本到语音.我正在使用HTML5语音合成.在谷歌浏览器上,代码运行正常,所有可用的声音都使用| getVoices()|列出,但在Firefox中根本没有列出语音.我在Firefox 56.0(Ubuntu)上测试我的代码.

在通过互联网搜索时,我确实遇到了一个StackOverflow 答案,该答案表明应该在| onVoiceChanged |之后调用getVoices()函数.事件

    window.speechSynthesis.onvoiceschanged = function() {
    window.speechSynthesis.getVoices();
    ... 
};
Run Code Online (Sandbox Code Playgroud)

我正在以上述方式调用该呼​​叫,它在Chrome中可以正常工作,但在Firefox上则不行.

另一个StackOverflow回答建议我启用| media.webspeech.synth.enabled | 在about:配置Firefox,但在我的Firefox中首选| media.webspeech.synth.enabled | 已经设置为true.

我查看了MDN文档https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/getVoices,此页面上的示例在Firefox中没有运行,但在Chrome中运行良好.我发现CanIUse.com列出了Firefox 55以后支持的SpeechSynthesis,但它对我不起作用.

演示由Mozilla开发者网络来演示语音合成失败对我的Firefox浏览器,但在谷歌浏览器运行正常.我在网上广泛搜索了一个解决方案,但找不到一个.有人可以在这里指出我正确的方向.

javascript firefox html5 text-to-speech speech-synthesis

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