安卓自动朗读TTS
2017-02-21 08:27
218 查看
安卓的TTS暂时不支持中文
安卓的自动朗读支持主要是通过TextToSpeech来完成,该类提供的构造器如下:
TextToSpeech(Context context,TextToSpeech.OnInitListener listener)
一旦程序中获得了TextToSpeech对象之后,接下来就需要调用TextToSpeech的setLanguage(Locale loc)(返回值是int型) 方法来设置发声引擎使用的语言,国家选项。当返回值是TextToSpeech.LANG_COUNTRY_AVAILABLE,则说明当前TTS支持所设置的语言,国家选项。
TextToSpeech类中常用的方法如下两个:
speak(CharSequence text,int queueMode,Bundle params,String utteranceld)
synthesizeToFile(CharSequence text,int queueMode,Bundle params,File file,String utteranceld)
上述两个发法都是播放音频,但是第一个知识播放音频,第二个是将音频转换为生音文件保存起来
上面的 params都是用于指定生音转换是的参数。speak()方法中的queueMode参数指定TTS的发音队列模式,该参数支持如下两个 常量:
TextToSpeech.QUEUE_FLUSH:如果指定该模式,当TTS调用speak()方法的时候,他会中断当前实例正在执行的任务(清楚当前语音任务,转而执行新的语音任务)
TextToSpeech.QUEUE_ADD如果指定该模式,当TTS调用speak()方法的时候,会把新的发音任务添加到当前发音任务队列之后,也就是当前发音任务执行完之后再去执行下一个任务
实例:
安卓的自动朗读支持主要是通过TextToSpeech来完成,该类提供的构造器如下:
TextToSpeech(Context context,TextToSpeech.OnInitListener listener)
一旦程序中获得了TextToSpeech对象之后,接下来就需要调用TextToSpeech的setLanguage(Locale loc)(返回值是int型) 方法来设置发声引擎使用的语言,国家选项。当返回值是TextToSpeech.LANG_COUNTRY_AVAILABLE,则说明当前TTS支持所设置的语言,国家选项。
TextToSpeech类中常用的方法如下两个:
speak(CharSequence text,int queueMode,Bundle params,String utteranceld)
synthesizeToFile(CharSequence text,int queueMode,Bundle params,File file,String utteranceld)
上述两个发法都是播放音频,但是第一个知识播放音频,第二个是将音频转换为生音文件保存起来
上面的 params都是用于指定生音转换是的参数。speak()方法中的queueMode参数指定TTS的发音队列模式,该参数支持如下两个 常量:
TextToSpeech.QUEUE_FLUSH:如果指定该模式,当TTS调用speak()方法的时候,他会中断当前实例正在执行的任务(清楚当前语音任务,转而执行新的语音任务)
TextToSpeech.QUEUE_ADD如果指定该模式,当TTS调用speak()方法的时候,会把新的发音任务添加到当前发音任务队列之后,也就是当前发音任务执行完之后再去执行下一个任务
实例:
public class MainActivity extends AppCompatActivity { TextToSpeech tts; EditText editText; Button button1; Button button2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tts=new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override public void onInit(int i) { //如果装载tts引擎成功 if(i==TextToSpeech.SUCCESS){ //设置使用英语朗读 int result=tts.setLanguage(Locale.US); if(result!=TextToSpeech.LANG_COUNTRY_AVAILABLE && result!=TextToSpeech.LANG_AVAILABLE){ Toast.makeText(MainActivity.this,"TTS暂时不支持这种语言",Toast.LENGTH_SHORT).show(); } } } }); editText=(EditText)findViewById(R.id.editText); button1=(Button)findViewById(R.id.du); button2=(Button)findViewById(R.id.jilu); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //执行朗读 tts.speak(editText.getText().toString(), TextToSpeech.QUEUE_ADD,null,"speech"); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //将朗读文本的音频记录到指定文件 tts.synthesizeToFile(editText.getText().toString(),null, new File("mnt/sdcard/sound.wav"),"record"); Toast.makeText(MainActivity.this,"生音记录成功!",Toast.LENGTH_SHORT).show(); } }); } public void onDestroy(){ //关闭TextToSpeech对象 if(tts!=null){ tts.shutdown(); } } }
相关文章推荐
- Android的数据存储和IO - 自动朗读(TTS)
- Android自动朗读(TTS)的实现
- 初学Android,自动朗读TTS(五十二)
- Android的数据存储和IO - 自动朗读(TTS)
- 自动朗读(TTS)
- Andorid自动朗读TTS使用
- Android学习笔记(4)---自动朗读TTS发音使用
- Android自动朗读(TTS)的实现
- Android中的自动朗读(TTS)
- Android中的自动朗读(TTS)
- Android开发之自动朗读TTS用法分析
- Android 自动朗读(TTS)
- Android中自动朗读(TTS)的简单使用
- Android自动朗读(TTS)
- 自动朗读 TTS
- 安卓高级组件----自动完成文本框
- 使用Microsoft Speech Object Library自动朗读
- native.js 安卓自动连接制定名称和密码的wifi
- 安卓 app 本地升级下载后自动安装(小米手机安装包解析失败问题)
- 安卓使用EditText进入一个新页面时自动获取焦点弹出输入法界面解决办法