一、当天完成的任务
将百度语音的sdk加载进项目
代码如下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
EventManager eventManager = EventManagerFactory.create(this,"asr");
com.baidu.speech.EventListener eventListener = new com.baidu.speech.EventListener() {
@Override
public void onEvent(String s, String s1, byte[] data, int offset, int length) {
if(s == SpeechConstant.CALLBACK_EVENT_ASR_READY){
Log.i("TAG","start:"+s1);
info.setText(s+"\n"+s1);
}
if(s == SpeechConstant.CALLBACK_EVENT_ASR_BEGIN){
info.setText(s+"\n"+s1);
}
if(s == SpeechConstant.CALLBACK_EVENT_ASR_END){
info.setText(s+"\n"+s1);
}
if(s == SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL){
//TODO
}
}
};
eventManager.registerListener(eventListener);
eventManager.send(SpeechConstant.ASR_START,jsonObject.toString(),null,0,0);
}
private void initPermission() {
String permissions[] = {Manifest.permission.RECORD_AUDIO,
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.INTERNET,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
ArrayList<String> toApplyList = new ArrayList<String>();
for (String perm :permissions){
if (PackageManager.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(this, perm)) {
toApplyList.add(perm);
//进入到这里代表没有权限.
}
}
String tmpList[] = new String[toApplyList.size()];
if (!toApplyList.isEmpty()){
ActivityCompat.requestPermissions(this, toApplyList.toArray(tmpList), 123);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
// 此处为android 6.0以上动态授权的回调,用户自行实现。
}
}
二、第二天的计划
将百度sdk完成的项目导入原有文件,完成语音输入
三、每日小结
百度sdk的文档写的相当糟糕,给出的demo功能过多,并没有对于单一功能的demo,需要自己阅读代码来寻找自己所需要的部分并进行改动。虽然只是一个小小的语音输入转文字输入,但需要很多的工作,阅读很多的文档。
浙公网安备 33010602011771号