语音转换成文字

package com.example.speechtotext;


import java.util.ArrayList;


import com.baidu.voicerecognition.android.VoiceRecognitionClient;
import com.baidu.voicerecognition.android.VoiceRecognitionConfig;
import com.baidu.voicerecognition.android.ui.BaiduASRDigitalDialog;
import com.baidu.voicerecognition.android.ui.DialogRecognitionListener;


import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.speech.RecognizerIntent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity implements OnClickListener{
protected static final int RESULT_SPEECH = 1;
private Context context;
private  ImageButton btnButton;
private TextView textText;
private BaiduASRDigitalDialog mDialog;
private VoiceRecognitionClient  mRecognitionClient;
private  DialogRecognitionListener mRecognitionListener;
private Bundle  params;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
params=new Bundle();
//设置开放平台 API Key
params.putString(BaiduASRDigitalDialog.PARAM_API_KEY, "skDjrbZx2OWV9oFVgv8rVksc");
//设置开放平台 Secret Key
params.putString(BaiduASRDigitalDialog.PARAM_SECRET_KEY, "462309f95d496c4db6a4232c346bee85");
//设置识别领域:搜索、输入、地图、音乐……,可选。默认为输入。
params.putInt( BaiduASRDigitalDialog.PARAM_PROP,VoiceRecognitionConfig.PROP_INPUT);
//设置语种类型:中文普通话,中文粤语,英文,可选。默认为中文普通话
params.putString( BaiduASRDigitalDialog.PARAM_LANGUAGE,VoiceRecognitionConfig.LANGUAGE_CHINESE);
//如果需要语义解析,设置下方参数。领域为输入不支持
params.putBoolean(BaiduASRDigitalDialog.PARAM_NLU_ENABLE,true);
// 设置对话框主题,可选。BaiduASRDigitalDialog 提供了蓝、暗、红、绿、橙四中颜色,每种颜
// 色又分亮、暗两种色调。共 8 种主题,开发者可以按需选择,取值参考 BaiduASRDigitalDialog 中
// 前缀为 THEME_的常量。默认为亮蓝色
params.putInt(BaiduASRDigitalDialog.PARAM_DIALOG_THEME,BaiduASRDigitalDialog
.THEME_RED_DEEPBG);
// mRecognitionClient=VoiceRecognitionClient.getInstance(context.getApplicationContext());
// mRecognitionClient.setTokenApis("skDjrbZx2OWV9oFVgv8rVksc", "462309f95d496c4db6a4232c346bee85");
// mRecognitionClient.getCurrentDBLevelMeter();


initView();
setListener();
}
public void initView(){
context=this;
mDialog=new BaiduASRDigitalDialog(context, params);
mRecognitionListener=new DialogRecognitionListener() {

@Override
public void onResults(Bundle results) {
// TODO Auto-generated method stub
ArrayList<String> rs=results !=null?results
.getStringArrayList(RESULTS_RECOGNITION):null;
if(rs!=null){
//此处处理识别结果,识别结果可能有多个,按置信度从高到低排列,第一个元素是置信度最高的结果。
textText.setText(rs.get(0));
}
}
};
mDialog.setDialogRecognitionListener(mRecognitionListener);
mDialog.getParams().putBoolean(BaiduASRDigitalDialog.PARAM_NLU_ENABLE, false);
btnButton =(ImageButton) findViewById(R.id.btnSpeak);
textText=(TextView) findViewById(R.id.txtText);
}
public void setListener(){
btnButton.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnSpeak:
mDialog.show();
break;


default:
break;
}
}
}
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/textView1"
    android:layout_toLeftOf="@+id/textView1"
    android:gravity="center"
    android:orientation="vertical" >
  
    <ImageButton
        android:id="@+id/btnSpeak"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:contentDescription="@string/speak"
        android:src="@drawable/ic_launcher" />
  
    <TextView
        android:id="@+id/txtText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:textAppearance="?android:attr/textAppearanceLarge" />
  
</LinearLayout>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值