将文字信息转化为可听的声音信息,让机器像人一样开口说话。

1.1. 合成播放

  1. //1.创建SpeechSynthesizer对象
  2. SpeechSynthesizer mTts= SpeechSynthesizer.createSynthesizer( );
  3. //2.合成参数设置,详见《MSC Reference Manual》SpeechSynthesizer 类
  4. mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");//设置发音人
  5. mTts.setParameter(SpeechConstant.SPEED, "50");//设置语速
  6. mTts.setParameter(SpeechConstant.VOLUME, "80");//设置音量,范围0~100
  7. //设置合成音频保存位置(可自定义保存位置),保存在“./tts_test.pcm”
  8. //如果不需要保存合成音频,注释该行代码
  9. mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, "./tts_test.pcm");
  10. //3.开始合成
  11. mTts.startSpeaking("语音合成测试程序", mSynListener);
  12. //合成监听器
  13. private SynthesizerListener mSynListener = new SynthesizerListener(){
  14. //会话结束回调接口,没有错误时,error为null
  15. public void onCompleted(SpeechError error) {}
  16. //缓冲进度回调
  17. //percent为缓冲进度0~100,beginPos为缓冲音频在文本中开始位置,endPos表示缓冲音频在文本中结束位置,info为附加信息。
  18. public void onBufferProgress(int percent, int beginPos, int endPos, String info) {}
  19. //开始播放
  20. public void onSpeakBegin() {}
  21. //暂停播放
  22. public void onSpeakPaused() {}
  23. //播放进度回调
  24. //percent为播放进度0~100,beginPos为播放音频在文本中开始位置,endPos表示播放音频在文本中结束位置.
  25. public void onSpeakProgress(int percent, int beginPos, int endPos) {}
  26. //恢复播放回调接口
  27. public void onSpeakResumed() {}
  28. };

1.2. 合成到文件

  1. //1.创建SpeechSynthesizer对象
  2. SpeechSynthesizer mTts= SpeechSynthesizer.createSynthesizer( );
  3. //2.合成参数设置,详见《MSC Reference Manual》SpeechSynthesizer 类
  4. mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");//设置发音人
  5. mTts.setParameter(SpeechConstant.SPEED, "50");//设置语速,范围0~100
  6. mTts.setParameter(SpeechConstant.PITCH, "50");//设置语调,范围0~100
  7. mTts.setParameter(SpeechConstant.VOLUME, "50");//设置音量,范围0~100
  8. //3.开始合成
  9. //设置合成音频保存位置(可自定义保存位置),默认保存在“./tts_test.pcm”
  10. mTts.synthesizeToUri("语音合成测试程序", "./tts_test.pcm",synthesizeToUriListener);
  11. //合成监听器
  12. SynthesizeToUriListener synthesizeToUriListener = new SynthesizeToUriListener() {
  13. //progress为合成进度0~100
  14. public void onBufferProgress(int progress) {}
  15. //会话合成完成回调接口
  16. //uri为合成保存地址,error为错误信息,为null时表示合成会话成功
  17. public void onSynthesizeCompleted(String uri, SpeechError error) {}
  18. };