編輯:關於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實現文字在線合成語音的全部敘述,希望大家喜歡。
android 導航總結
1、繼承TabActivity package com.example.yqqmobilesafe; import android.app.TabActivity; i
android通過代碼控制ListView上下滾動
本文將介紹一種通過代碼控制ListView上下滾動的方法。 先上圖: 按下按鈕會觸發ListView滾動或停止。 實現該功能並不難,下面給出主要代碼MainAct
Android 實現蘑菇街購物車動畫效果
版本:1.0 日期:2014.8.6版權:© 2014 kince 轉載注明出處 使用過蘑菇街的用戶基本上都知道有一個加入購物車的動畫效果,此處不具體描述想知道
EasyPusher直播推送中用到的緩沖區設計和丟幀原理
問題描述我們在開發直播過程中,會需要用到直播推送端,推送端將直播的音視頻數據推送到流媒體服務器或者cdn,再由流媒體服務器/CDN進行視頻的轉發和分發,提供給客戶端進行觀