讯飞文字转语音
官方文档:https://doc.xfyun.cn/msc_android/index.html
Demo:
1.创建应用,获取AppId
2.下载SDK,集成
3.
4.代码实现
-
import android.app.Activity ;
-
import android.os.Bundle ;
-
import android.util.Log ;
-
import android.view.View ;
-
import android.widget.Button ;
-
import android.widget.EditText ;
-
import android.widget.Toast ;
-
-
import com.iflytek.cloud.ErrorCode ;
-
import com.iflytek.cloud.InitListener ;
-
import com.iflytek.cloud.RecognizerListener ;
-
import com.iflytek.cloud.RecognizerResult ;
-
import com.iflytek.cloud.SpeechConstant ;
-
import com.iflytek.cloud.SpeechError ;
-
import com.iflytek.cloud.SpeechRecognizer ;
-
import com.iflytek.cloud.SpeechSynthesizer ;
-
import com.iflytek.cloud.SpeechUtility ;
-
import com.iflytek.cloud.SynthesizerListener ;
-
import com.iflytek.cloud.ui.RecognizerDialog ;
-
import com.iflytek.cloud.ui.RecognizerDialogListener ;
-
-
import org.json.JSONException ;
-
import org.json.JSONObject ;
-
-
import java.util.HashMap ;
-
import java.util.LinkedHashMap ;
-
-
public class MainActivity extends Activity implements View.OnClickListener {
-
-
private static final String TAG = MainActivity.class .getSimpleName();
-
private EditText et_input;
-
private Button btn_startspeech, btn_startspeektext ;
-
-
// 用HashMap存储听写结果
-
private HashMap<String, String> mIatResults = new LinkedHashMap<String , String>();
-
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super .onCreate(savedInstanceState) ;
-
initView() ;
-
initSpeech() ;
-
}
-
-
private void initView() {
-
setContentView(R.layout.activity_main) ;
-
et_input = (EditText) findViewById(R.id.et_input );
-
btn_startspeech = (Button) findViewById(R.id.btn_startspeech );
-
btn_startspeektext = (Button) findViewById(R.id.btn_startspeektext );
-
btn_startspeech .setOnClickListener( this) ;
-
btn_startspeektext .setOnClickListener( this) ;
-
}
-
-
private void initSpeech() {
-
// 将“12345678”替换成您申请的 APPID,申请地址: http://www.xfyun.cn
-
// 请勿在 “ =”与 appid 之间添加任务空字符或者转义符
-
SpeechUtility. createUtility( this, SpeechConstant. APPID + "=56ffe0ae" );
-
}
-
-
@Override
-
public void onClick(View v) {
-
switch (v.getId()) {
-
case R.id.btn_startspeech: //语音识别(把声音转文字)
-
startSpeechDialog();
-
break;
-
case R.id. btn_startspeektext:// 语音合成(把文字转声音)
-
speekText();
-
break;
-
}
-
-
}
-
-
private void speekText() {
-
//1. 创建 SpeechSynthesizer 对象 , 第二个参数: 本地合成时传 InitListener
-
SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer( this, null);
-
//2.合成参数设置,详见《 MSC Reference Manual》 SpeechSynthesizer 类
-
//设置发音人(更