Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 使用科大訊飛語音SDK實現文字在線合成語音

使用科大訊飛語音SDK實現文字在線合成語音

編輯:關於Android編程

最近需要使用到語音播報的功能,在百度七武器百度語音和科大訊飛的語音當中考慮到准確性和專業性,選擇了科大訊飛。科大訊飛所提供的android開發sdk有兩種一種是集成了自身產品語音+的sdk,功能比較強大但是會初始化語音服務模塊;另一種是純開發sdk不集成產品只需要導入相應jar包就可以使用。考慮到只用到了語音合成的技術所以選擇了第二種sdk。

具體代碼如下所示:

private SpeechSynthesizer mTts; private int isSpeaking = 0; mTts= SpeechSynthesizer.createSynthesizer(this, null); /*
   * 開始合成
   * 
   * @param view
   */
  public void start() {
    mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");
    mTts.setParameter(SpeechConstant.SPEED, "50");//設置語速
    mTts.setParameter(SpeechConstant.VOLUME, "80");//設置音量,范圍 0~100
    mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); //設置雲端
    mTts.startSpeaking(search_word_content.getText().toString().trim(), mSynListener);
  } 
//合成監聽器
  private SynthesizerListener mSynListener = new SynthesizerListener(){
    //緩沖進度回調
    //percent為緩沖進度0~100,beginPos為緩沖音頻在文本中開始位置,endPos表示緩沖音頻在
    //文本中結束位置,info為附加信息。
    @Override
    public void onBufferProgress(int arg0, int arg1, int arg2, String arg3) {
      // TODO Auto-generated method stub
    }
    //會話結束回調接口,沒有錯誤時,error為null
    @Override
    public void onCompleted(SpeechError arg0) {
      // TODO Auto-generated method stub
    }
    //會話事件回調接口
    @Override
    public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {
      // TODO Auto-generated method stub
    }
    //開始播放
    @Override
    public void onSpeakBegin() {
      // TODO Auto-generated method stub
    }
    //暫停播放
    @Override
    public void onSpeakPaused() {
      // TODO Auto-generated method stub
    }
    //播放進度回調
    //percent為播放進度0~100,beginPos為播放音頻在文本中開始位置,endPos表示播放音頻在文
    //本中結束位置.
    @Override
    public void onSpeakProgress(int arg0, int arg1, int arg2) {
      // TODO Auto-generated method stub
    }
    //恢復播放回調接口
    @Override
    public void onSpeakResumed() {
      // TODO Auto-generated method stub
    }
  }; 
if (isSpeaking == 0) {
        start();
        gif_no.setVisibility(View.INVISIBLE);
        gif.setVisibility(View.VISIBLE);
        isSpeaking = 1;
      } else if (isSpeaking == 1) {
        // 暫停播放
        mTts.pauseSpeaking();
        gif_no.setVisibility(View.VISIBLE);
        gif.setVisibility(View.INVISIBLE);
        isSpeaking = 2;
      } else if (isSpeaking == 2) {
        // 繼續播放
        //System.out.println("..........");
        mTts.resumeSpeaking();
        isSpeaking = 1;
        gif_no.setVisibility(View.INVISIBLE);
        gif.setVisibility(View.VISIBLE);
      } 
// 取消合成
    mTts.stopSpeaking();
    isSpeaking = 0; 

總結, 開始初始化,start方法裡面設置參數,再根據需要調用停止和繼續方法,假如換了文本調用取消合成方法,重新start方法

以上內容是小編給大家分享的使用科大訊飛語音SDK實現文字在線合成語音的全部敘述,希望大家喜歡。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved