初学Android,自动朗读TTS(五十二)

news/2024/7/4 1:42:04 标签: tts, android, button, null, 语言, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

Android提供了自动朗读功能TTS(TextToSpeech),有些人用过一些听书软件,就是把文字念出来,听起来不错,不过TTS目前并不支持中文(难道又是一个鸡肋?)

API详解

http://wang-peng1.iteye.com/blog/572849

下面做个简单的例子


朗读出来是一个成年女性的声音,语速有些快,不知道这个能不能调节

class="language-java">package WangLi.IO.Speech;

import java.util.Locale;

import class="tags" href="/tags/ANDROID.html" title=android>android.app.Activity;
import class="tags" href="/tags/ANDROID.html" title=android>android.os.Bundle;
import class="tags" href="/tags/ANDROID.html" title=android>android.speech.class="tags" href="/tags/TTS.html" title=tts>tts.TextToSpeech;
import class="tags" href="/tags/ANDROID.html" title=android>android.speech.class="tags" href="/tags/TTS.html" title=tts>tts.TextToSpeech.OnInitListener;
import class="tags" href="/tags/ANDROID.html" title=android>android.view.View;
import class="tags" href="/tags/ANDROID.html" title=android>android.view.View.OnClickListener;
import class="tags" href="/tags/ANDROID.html" title=android>android.widget.Button;
import class="tags" href="/tags/ANDROID.html" title=android>android.widget.EditText;
import class="tags" href="/tags/ANDROID.html" title=android>android.widget.Toast;

public class Speech extends Activity {
	TextToSpeech class="tags" href="/tags/TTS.html" title=tts>tts;
	EditText editText;
	Button speech;
	Button record;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //初始化TextToSpeech对象
        class="tags" href="/tags/TTS.html" title=tts>tts = new TextToSpeech(this,new OnInitListener()
        {
			@Override
			public void onInit(int status) {
				//如果装载TTS引擎成功
				if(status == TextToSpeech.SUCCESS)
				{
					//设置使用美式英语朗读(虽然设置里有中文选项Locale.Chinese,但并不支持中文)
					int result = class="tags" href="/tags/TTS.html" title=tts>tts.setLanguage(Locale.US);
					//如果不支持设置的class="tags" href="/tags/YuYan.html" title=语言>语言
					if(result != TextToSpeech.LANG_COUNTRY_AVAILABLE 
							&& result != TextToSpeech.LANG_AVAILABLE)
					{
						Toast.makeText(Speech.this, "TTS暂时不支持这种class="tags" href="/tags/YuYan.html" title=语言>语言朗读", 50000).show();
					}
				}
			}
        });
        editText = (EditText)findViewById(R.id.txt);
        speech = (Button)findViewById(R.id.speech);
        record = (Button)findViewById(R.id.record);
        speech.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View arg0) {
				//执行朗读
				class="tags" href="/tags/TTS.html" title=tts>tts.speak(editText.getText().toString(), TextToSpeech.QUEUE_ADD, class="tags" href="/tags/NULL.html" title=null>null);
			}});
        record.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				//将朗读文本的音频记录到指定文件
				class="tags" href="/tags/TTS.html" title=tts>tts.synthesizeToFile(editText.toString().toString(), class="tags" href="/tags/NULL.html" title=null>null, "/sdcard/sound.wav");
				Toast.makeText(Speech.this, "声音记录成功", 50000).show();
			}});
    }
    @Override
    public void onDestroy()
    {
    	//关闭TextToSpeech对象
    	if(class="tags" href="/tags/TTS.html" title=tts>tts != class="tags" href="/tags/NULL.html" title=null>null)
    		class="tags" href="/tags/TTS.html" title=tts>tts.shutdown();
    }
}



http://www.niftyadmin.cn/n/1411321.html

相关文章

fetch的实现原理解析

说明 fetch是基于原生的XMLHttpRequest对象来实现数据请求的。 同时,fetch也是基于Promise实现链式调用的。 那么,实现fetch的本质:就是实现ajax的封装以及Promise的实现。 ajax的封装 在原生的api中,XMLHttpRequest对象是封…

Java内存模型小析之原子性和可见性(二)

在上篇文章中我们简单的说了一下jvm的内存布局(点这里查看),在这篇文章中我们继续java内存模型方面的东西。 原子性 注意这里的原子性不是数据库事务中的原子性。这里原子性的定义是这样的:一个操作或一系列是不可中断的。即使是在…

初学Android,使用ContentProvider管理电话簿联系人(五十三)

关于ContentProvider和Uri详解 http://www.cnblogs.com/linjiqin/archive/2011/05/28/2061396.html 不多说,详细API解释,上面链接讲的很细致,ContentProvider的作用就是提供在不同Android程序间共享数据的功能,包括Android系统的共…

前端性能优化,我们可以做哪些?

1、雪碧图技术 这个很简单,把每个小图标都整合到一张大图上面,极大的减轻http请求数,同时能够让图片快速加载进来。 考虑到当前的5g的发展前景,以后图片不会造成加载延迟的现象。 2、浏览器渲染机制 输入一个网址:…

kafka入门样例 for java

1,生产者 import java.util.Properties;import kafka.javaapi.producer.Producer; import kafka.producer.KeyedMessage; import kafka.producer.ProducerConfig;public class TestProducer { public static void main(String[] args) { Properties props new Pr…

初学Android,使用ContentProvider管理多媒体(五十四)

ContentProvider获得多媒体信息,网上到处是这篇文章的转载转载再转载 http://blog.csdn.net/whbwh123/article/details/7429633下面是一个例子,用来添加图片,和显示图片package WangLi.IO.MediaProviderTest;import java.io.IOException; imp…

闭包——到底是什么?

闭包的概念 闭包是函数和声明该函数的词法环境的组合。 这是官方文档,给出的标准的闭包定义。它是什么意思呢? 它说明了两个方面,一方面着重强调了函数,一方面着重强调了词法环境。 有人说,函数套函数,…

初学Android,自己实现ContentProvider(五十五)

在前几篇里面,学的是使用ContentResolver来操作系统ContentProvider提供的数据,下面要学学开发自己的ContentProvider 开发自己的ContentProvider有两步 1.开发一个ContentProvider的子类,该子类需要实现增,删,改,查 2.在AndroidM…