我需要在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) 我试图在我的Activity中实现android的文本到语音技术,但我面临一个奇怪的错误.从我的代码中我听不到任何声音.只有当我将它放在onInit方法中时,speak方法才有效,否则它就不会说话.
我的代码如下:
Run Code Online (Sandbox Code Playgroud)public class GameOverActivity extends Activity implements OnInitListener { private TextToSpeech talker; .... talker = new TextToSpeech(this, this); say("Something",false); ... public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { talker.setLanguage(Locale.US); } else if (status == TextToSpeech.ERROR) { Toast.makeText(this,"Error occurred while initializing Text-To-Speech engine", Toast.LENGTH_LONG).show(); } void say(String text, boolean flush) { if(flush == true) { talker.speak(text,TextToSpeech.QUEUE_FLUSH,null); } if(flush == false) { talker.speak(text,TextToSpeech.QUEUE_ADD,null); } }
奇怪的是,如果我将say方法放在onInit中,它运行正常!
我仔细观察了logcat,结果如下:
TtsService.OnCreate()TTs正在加载AudioTrack启动TTSService.setLanguage加载en-US将语音速率设置为100
然后没有任何反应.
有关上述代码有什么问题的任何想法?
提前致谢!
我想用阿拉伯语保存音频文件.因为我使用的代码如下.
我正在尝试,但我无法用阿拉伯语保存.它仅以英语保存.请帮帮我,谢谢
package com.t;
import java.io.File;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class TextToSpeechNewActivity extends Activity {
Button store, play;
EditText input;
String speakTextTxt;
TextToSpeech mTts;
HashMap<String, String> myHashRender = new HashMap<String, String>();
String tempDestFile ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
store = (Button) findViewById(R.id.button1);
play = (Button) findViewById(R.id.button2);
input = (EditText) findViewById(R.id.editText1);
store.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View …Run Code Online (Sandbox Code Playgroud) 我猜这个问题几乎说明了一切?
我宁愿不访问Microsoft Translator和Project Hawaii等云服务?
我可以访问任何直接的API吗?
(对于metro应用程序)
windows text-to-speech speech-to-text voice-recognition windows-8
该语音合成API允许文本到语音功能的浏览器测试版.但是,浏览器会自动播放TTS请求的结果.如何访问音频结果以进行后处理并禁用API的默认行为?
我正在为学校做一个项目,我们将教孩子们第一次计算.不幸的是,这些孩子无法阅读,所以他们会用母语向他们讲述任务,在这种情况下是荷兰语.
我一直在环顾四周,大多数文本到语音的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
我正在尝试在html5中使用语音合成来用阿拉伯语讲话,但是它不起作用.我运行以下脚本来检查chrome支持的语言,而阿拉伯语不是其中之一.
window.addEventListener("DOMContentLoaded", function () {
if (window.speechSynthesis != undefined) {
document.getElementById("playback").addEventListener("click", function () {
var stimmen = window.speechSynthesis.getVoices();
for (var i = 0; i < stimmen.length; i++) {
console.log("Voice " + i.toString() + " " + stimmen[i].name);
}
}, false)
}
}, false)
Run Code Online (Sandbox Code Playgroud)
这是我用过的脚本
var msg = new SpeechSynthesisUtterance();
msg.text = '????? ????? ???????';
msg.lang = 'ar-SA';
window.speechSynthesis.speak(msg);
Run Code Online (Sandbox Code Playgroud)
有没有办法在阿拉伯语中安装语音/语言以使此功能正常工作.如果没有,任何人都可以引导我为网站嵌入文本到语音服务,它必须支持阿拉伯语吗?或者任何可以做到的事情?我已经联系了readpeech,但他们的价格高于我的预算
我这样称呼Voice.getName()方法:
Set<Voice> voices = tts.getVoices();
String name = voice.getName();
Run Code Online (Sandbox Code Playgroud)
这将返回代码名称而不是友好的显示名称.我想要的是一个显示名称,但似乎没有办法得到这个.
是否可以将代码转换为有意义的内容以创建用户友好名称?并消除重复?很多声音相似 - 但只是有点不同.
这些是英国英国的一些代码:
en-GB-language
en-gb-x-rjs-local
en-gb-x-rjs-network
en-gb-x-fis-local
en-gb-x-fis-network
en-gb-x-fis#female_1-local
en-gb-x-rjs#female_1-local
en-gb-x-rjs#female_2-local
en-gb-x-fis#female_2-local
en-gb-x-rjs#male_1-local
Run Code Online (Sandbox Code Playgroud)
到目前为止我的想法:
rjs和fis重复很多,而且同时适用于男性和女性,但仅限于英国英语.似乎每种语言都有一组或两组不同的3个字母的首字母 - 也许它是一个区域代码.en-gb-x-rjs#male_1-local并且en-gb-x-rjs-local完全相同有没有人对这些有更好的理解?
我在我的覆盆子Pi 3上使用gTTS(Google Text to Speech)时遇到了麻烦.我只是这样做了
sudo pip3 install gTTS
Run Code Online (Sandbox Code Playgroud)
安装它.但是当我运行我的代码时,我发现了这个错误:
File "interface.py", line 7, in <module>
from gtts import *
File "/usr/local/lib/python3.4/dist-packages/gtts/\__init__.py", line 2, in <module>
from .tts import gTTS
File "/usr/local/lib/python3.4/dist-packages/gtts/tts.py", line 4, in <module>
from requests.packages.urllib3.exceptions import InsecureRequestWarning
ImportError: cannot import name 'InsecureRequestWarning'
Run Code Online (Sandbox Code Playgroud)
试图解决我做的问题
sudo easy_install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
然后我卸载并再次安装gtts但问题仍然存在.
非常感谢您的帮助 !:(
PS:我已经安装了python-vlc和mutagen来制作gTTS(正如我在windows设备上所做的那样)
text-to-speech ×10
android ×4
html5 ×2
javascript ×2
python ×2
freetts ×1
importerror ×1
jquery ×1
pip ×1
raspberry-pi ×1
windows ×1
windows-8 ×1