因为这个demo用到了讯飞语音,所以需要申请讯飞的key值,另外对录音的格式也有一定的要求:16bit,16000hz,单声道的pcm文件,因为布局只有一个button和两个Textview,其中两个textview显示的结果不一样,用不到的同学可自行去掉,另外还需要添加权限,导入jar包,所以就不上传了。下面就是代码:
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
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.SpeechUtility;
import android.os.Bundle;
import android.os.Environment;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
@SuppressLint("NewApi")
public class MainActivity extends Activity implements OnClickListener {
private SpeechRecognizer mSpeech;
private TextView recognizertext, allreult;
private ProgressDialog progressDialog;
private StringBuffer ret1, ret2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.recognizerB).setOnClickListener(this);
recognizertext = (TextView) findViewById(R.id.recognizertext);
allreult = (TextView) findViewById(R.id.allreult);
SpeechUtility.createUtility(MainActivity.this, "appid=12345678");
mSpeech = SpeechRecognizer.createRecognizer(this, mInitListener);
}