我需要在BroadcastReceiver的子类中调用TTS服务.当我从OnInitListener实现该类时,它给出了运行时错误.
在BroadcastReceiver中是否有其他方式来实现TTS?
谢谢,
对不起代码:
public class TextApp extends BroadcastReceiver implements OnInitListener {
private TextToSpeech tts;
private String message = "Hello";
@Override
public void onReceive(Context context, Intent intent) {
tts = new TextToSpeech(context, this);
message = "Hello TTS";
}
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS)
{
tts.speak(message, TextToSpeech.QUEUE_FLUSH, null);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用谷歌提供的TextToSpeech功能的Android应用程序,并遵循以下示例:
我想知道这一行:
int result = mTts.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA ||
result == TextToSpeech.LANG_NOT_SUPPORTED) {
// Lanuage data is missing or the language is not supported.
}
Run Code Online (Sandbox Code Playgroud)
如果用户设备上缺少语言数据,我该怎么办?如果数据不存在,应用程序将无法继续?有没有办法允许用户在他们的设备上获取语言?我有一个测试设备似乎根本没有任何语言.
什么文本语音和语音识别库可用于Clojure?到目前为止我发现了
https://github.com/klutometis/speech-recognition
https://github.com/klutometis/speech-synthesis
这两者都使用谷歌,因此依赖于网络.
我正在寻找那些不依赖互联网工作的人
speech-recognition clojure text-to-speech speech-synthesis libraries
网络语音api我有一个奇怪的问题.我已经设置了一些代码来说出一串文字 - 很少,它用正常的声音说话("Alex"来自Mac OS X中的听写和语音设置).但通常情况下,它的声音是"阿尔伯特".
我正在看这里列出的w3c网络语音api:
https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#dfn-ttsgetvoices
并且有一个名为的界面
SpeechSynthesisVoiceList {}
我试图访问此功能,但我不能.
我该如何访问此语音列表?我正在使用铬金丝雀,我已经尝试了很多这样做的方法.我期望的工作是:
var u = new SpeechSynthesisUtterance();
console.log(u.getVoices());
Run Code Online (Sandbox Code Playgroud)
要么
var u = new SpeechSynthesisVoiceList();
console.log(u);
Run Code Online (Sandbox Code Playgroud)
我也跑:
console.log(window)
Run Code Online (Sandbox Code Playgroud)
我看到很多关于网络语音api和语音合成的事情,但没有关于声音的事情.
javascript speech-recognition webkit google-chrome text-to-speech
该语音合成API允许文本到语音功能的浏览器测试版.但是,浏览器会自动播放TTS请求的结果.如何访问音频结果以进行后处理并禁用API的默认行为?
我为Android创建了一个支持多种语言的文本到语音引擎,其中一种语言是印地语.
在Android文本到语音设置中,当用户选择默认语言环境时,Android会执行多项检查,包括发送意图ACTION_GET_SAMPLE_TEXT
这是我支持的语言环境列表:
private static final String[] SUPPORTED_LANGUAGES = { "eng-GBR", "eng-USA", "fra-FRA", "spa-ESP", "deu-DEU", "ita-ITA",
"kor-KOR", "nld-NLD", "dan-DNK", "fin-FIN", "jpn-JPN", "nor-NOR", "pol-POL", "por-PRT", "por-BRA", "rus-RUS",
"swe-SWE", "zho-CHN", "zho-HKG", "zho-TWN", "ara-SAU", "hi-IN", "ces-CZE", "ell-GRC", "hun-HUN", "ron-ROU",
"slk-SVK", "tha-THA", "tur-TUR", "cym-GBR", "isl-ISL", "in-IDN" };
Run Code Online (Sandbox Code Playgroud)
对于"hi-IN"以外的每个区域设置,Android都会发送此意图,我会回复示例文本并显示"收听示例"按钮.
我已成功从调用onIsLanguageAvailable返回LANG_COUNTRY_AVAILABLE,但按钮仍然显示为灰色,并指出该语言不受支持.
我尝试了很多不同的语言环境ISO组合:
hin-IN,hi-IND,ind-HI等等,但Android不发送Intent,尽管它在Locale列表中被正确标记为印地语(印度语)或印地语.
logcat中没有错误表明失败的变体匹配.
我发布我的代码没什么意义,因为Android根本没有发送此Locale的Intent,所以它无法访问我的代码....
任何想法如何正确处理此区域设置变体?
编辑:我刚刚意识到它也发生在印尼语(in-IDN)
我正在为学校做一个项目,我们将教孩子们第一次计算.不幸的是,这些孩子无法阅读,所以他们会用母语向他们讲述任务,在这种情况下是荷兰语.
我一直在环顾四周,大多数文本到语音的javascript库都为英语提供了很好的支持,但对于任何其他语言都没有.此外,HTML5 speechSynthesis不支持Dutch:

在进一步的研究中,我遇到了一篇文章,您可以使用Google Translate Voice将任何文本生成语音.
您可以将其作为基本网址:http: //translate.google.com/translate_tts
在我的案例荷兰语中附上您想要的语言
http://translate.google.com/translate_tts?tl=nl
并附上你的文字:
您希望这可以使用更长的文本,但事实并非如此.
还有其他解决方案吗?谷歌语音很好地说荷兰语,所以我希望链接以某种方式工作.
javascript jquery html5 text-to-speech google-text-to-speech
我想为我的交互式训练集制作一个文本到语音的程序.我用过System.Speech图书馆,但声音总是女性.我想用一些男性的声音读一些句子,一些用女性的声音读.(这两个声音是我唯一需要的声音.)
我正在使用Windows 8 Pro和Visual Studio 2010.我只能看到一个语音包,即Microsoft Zira Desktop.
我的代码如下.如何配置男声的使用?
SpeechSynthesizer synth = new SpeechSynthesizer();
synth.Rate = 1;
synth.Volume = 100;
synth.SelectVoiceByHints(VoiceGender.Male,VoiceAge.Adult);
synth.SpeakAsync(label18.Text);
Run Code Online (Sandbox Code Playgroud) 我的应用程序被视障人士使用,因此它严重依赖于文本到语音.应用程序调用API并向用户读取加载(使用android.speech.tts.TextToSpeech)一些相关信息.
一切都很好,除了我注意到有时文本到语音的初始化需要10秒或更长时间,这是我的应用程序的主要瓶颈.
我想知道是否有人对如何优化我的代码以缓解此问题有任何想法.
首先,我的应用程序启动一项活动来检查TTS数据.
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
Run Code Online (Sandbox Code Playgroud)
然后,使用活动的结果调用此方法.根据结果,文本到语音只是初始化(这几乎总是发生)或文本到语音安装在设备上(非常罕见).
private TextToSpeech mTts;
@Override
protected void onActivityResult(
int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
mTts = new TextToSpeech(this, this);
} else {
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
Run Code Online (Sandbox Code Playgroud)
最后,当所有这一切完成后,我的应用程序调用了一个API,并且有几行如下:
mTts.speak("<Useful output here>", TextToSpeech.QUEUE_FLUSH, null);
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!
在我的webapp中,我正在尝试向Google API发出HTTP请求,该API需要一些文本(例如"Hello World")并返回一个具有相同语音的MP3文件.
我已经看到了这个问题:谷歌文本到语音tts api似乎不起作用.这个谷歌页面:https: //cloud.google.com/translate/docs/.
而且还有很多其他页面似乎已经过时了 - 看起来这个功能已被谷歌删除或者正在进行不同的休息通话?
我没有看到任何关于如何为TTS调用google api的文档(例如在Google Translate API https://cloud.google.com/translate/中).我有一个谷歌云API帐户和密钥.
谢谢,丹
text-to-speech ×10
android ×4
javascript ×3
.net ×1
c# ×1
clojure ×1
google-api ×1
html5 ×1
java ×1
jquery ×1
libraries ×1
locale ×1
webkit ×1