Android 系统自带的TTS (Text To Speak)语音库目前只有English ,German , Italian ,French ,Spanish(英文,德语,意大利语,法语,西班牙语)五个音库.所以中文发音必须要借助其他的软件,或者引擎.近些天研究目前有三个方法可以实现:
1,一种是借助shoushuotts音库引擎和jar文件在自己的项目中调用.具体方法可查看网址:http://dev.10086.cn/cmdn/bbs/thread-58426-1-1.html
(经过测试,中文发音很慢,用些多音字和特殊符号无法识别)
2.是用addr软件,方法同上,要添加两个jar文件.有源代码实例:
(测试发现,其中文发音是老外的调调,并且严重怀疑他的中文也是老外教的)
3 安装讯飞语音插件.需要安装两个文件,讯飞语音TTS.apk 和讯飞语音包.apk,不需要jar文件,直接到系统配置 -> 语音输入与输出 --> 文字转语音设置 -->讯飞语音后边打钩(选择后才能设置其他项) -- > 默认引擎(讯飞语音) -->语言(中文) (用必要是还可以在讯飞语音合成里选择男声和女声)
配置完成后,可直接用系统提供的TextToSpeak的方法直接调用即可.
(测试发现,改发音是中标准的中文发音,据了解,国内语音识别系统做的最好的一家,发音连贯,并且可辨认符号如℃等)
示例代码如下:
public class NiHaoTTS extends Activity implements OnInitListener {
private int MY_DATA_CHECK_CODE = 0;
private TextToSpeech tts;
private EditText inputText;
private Button speakButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xunfei_tts);
inputText = (EditText) findViewById(R.id.input_text);
speakButton = (Button) findViewById(R.id.speak_button);
speakButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
String text = inputText.getText().toString();
if (text!=null && text.length()>0)
{
Toast.makeText(NiHaoTTS.this, "Saying: " + text, Toast.LENGTH_LONG).show();
//开始阅读 text
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
}
}
});
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
}
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
tts = new TextToSpeech(this, this);
}
else
{
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
@Override
public void onInit(int status)
{
if (status == TextToSpeech.SUCCESS)
{
Toast.makeText(NiHaoTTS.this,
"Text-To-Speech engine is initialized", Toast.LENGTH_LONG).show();
}
else if (status == TextToSpeech.ERROR)
{
Toast.makeText(NiHaoTTS.this,
"Error occurred while initializing Text-To-Speech engine", Toast.LENGTH_LONG).show();
}
}
}
分享到:
相关推荐
android中文语音阅读器。能够阅读txt文本内容。采用的三星的中文语音引擎。
android下实现对文本的语音朗读,TTS技术,支持中文朗读。Android SDK 4.04下测试通过。 附件包含测试源代码及语音库文件 这是语音合成测试工程,如果需要朗读中文请安装中文引擎。我采用的是讯飞语音库,手机版本...
android studio tts 离线中文语音播放 ,男声,女声。可以调节音量高度,以及变声。离线so.
android 语音转换成文字
离线中文语音识别,识别率较高,请大家珍惜作者的劳动成果谢谢!也是为了赚积分不然不会上传.
android_tts_离线语音demo包文字转语音。 不依赖于手机的tts,及时手机没有安装tts,也可以运行。 成功的将文字转成语音,可以切换声音,调整语速。 尚存一个小问题,英文单词不认识了,读成了一个个字母。欢迎高人...
语音包里面包含语言如下: E 英文 F 法语 G 德语 I 印尼语 J 日本语 K 韩语 L 泰语 P 葡萄牙语 R 俄语 S 简体中文 T 香港-繁体中文 V 越南语 a 西班牙语-西班牙 t 土耳其语 w 繁体中文-台湾 脚本...
android文字转语音功能,支持中文。 实现功能:手动在edittext 输入文字,点击播放按钮,应用自动语音播报所输入的文字,支持中文。承诺有效。
用于Android开发中基础的语音开发包
android下实现对文本的语音朗读,TTS技术,目前使用Google的SDK只支持以英语为首的几种欧美语言,中文、日文等亚洲语言暂时不支持。Android SDK 2.2 下测试通过。 ################################################...
离线中文语音识别,识别率较高,请大家珍惜的劳动成果谢谢!也是为了赚积分不然不会上传.请大家珍惜劳动成果谢谢
android tts 集成手说语音库,完成文本转语音,需要下载手说apk.
手说TTS,是Android平台下的中文语音引擎,提供了中文文本到语音的转换。 使用手说TTS进行中文文本的朗读,包括中文简繁体、阿拉伯数字、英文字母及一些符号的混读。并且处理了中文的多音字和音调转换等问题。 开发...
Android 仿Siri的中文语音助理源码.zip项目安卓应用源码下载Android 仿Siri的中文语音助理源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
Android源码——仿Siri的中文语音助理源码.zip
该应用实现的功能是将阿拉伯数字转化为中文数字,语音是自己录的,可以自己更改语音资源!
Android语音输入识别汉字,整体框架特别好用!!!
提取自GoogleTTS中文语音数据包,供系统开发时内置中文语音,com.google.android.tts/app_voices_greco_v16
通过TTS可实现离线文字转语音,四款语音引擎总有一种适合你的,赶快下载吧!已经在项目中真正也用到了,很好用,毕竟系统TTS不一定支持中文,而这四款均支持中文
基于Android的中文语音助理源码