一个语音识别的例子
使用语言学习APP的语音识别功能纠正发音。 #生活知识# #外语学习#
一、提要
昨天搞定了SDK中的那个例子,接着想按照文档自己来写一个,但是.....直接用文档里的代码能调出来东西的话,简直就是奇迹。
所以就花了一些时间,完成了这个语音听写的例子,例子中,点击最下面的button可以开始说话,说完之后,屏幕中的TextView会显示刚才说过的话。
说真的,文档写得真的很不好,接口不详细,demo也没有说明,注释又少...唉。
二、准备工作
首先当然是新建一个Android项目,然后按照文档说的添加库.
1.在Eclipse中 选 中 工 程 , 通 过 工 具 栏Project->Properties->Java BuildPath->Libraries->Add JARS 或 ADD External JARS 引入 Msc.jar;
2.将 SDK.\lib 目录下 libs 文件夹拷贝到工程根目录,确保.\libs\armeabi\libmsc.so 文件存在。
3.在工程 AndroidManifest.xml 文件中添加如下权限
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
三、主要代码:
package com.example.meclisener;
import java.util.ArrayList;
import com.iflytek.speech.RecognizerResult;
import com.iflytek.speech.SpeechError;
import com.iflytek.ui.RecognizerDialog;
import com.iflytek.ui.RecognizerDialogListener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements RecognizerDialogListener {
private RecognizerDialog isrDialog;
private TextView myTextView;
private String text;
private Button myButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myTextView=(TextView)findViewById(R.id.myTextView);
myButton=(Button)findViewById(R.id.StartButton);
myButton.setOnClickListener(new ButtonListener());
}
@Override
protected void onStart() {
super.onStart();
text="";
isrDialog = new RecognizerDialog(this,"appid=XXXXXXXX");
isrDialog.setEngine("sms",null,null);
isrDialog.setListener(this);
}
@Override
public void onResults(ArrayList<RecognizerResult> results,boolean
isLast){
text += results.get(0).text;
System.out.println("OnResult");
Toast.makeText(getApplicationContext(),"You say"+text,Toast.LENGTH_SHORT).show();
}
@Override
public void onEnd(SpeechError error) {
if(error != null)
System.out.println("Error");
myTextView.setText(text);
}
public void showisrDialog()
{
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class ButtonListener implements OnClickListener
{
@Override
public void onClick(View v) {
isrDialog.show();
}
}
}
布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
a
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="@string/hello_world"
android:textSize="20dp"
tools:context=".MainActivity" />
<LinearLayout
android:id="@+id/bottom"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<Button
android:id="@+id/StartButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dip"
android:layout_weight="1"
android:text="Speak"/>
</LinearLayout>
</RelativeLayout>
网址:一个语音识别的例子 https://www.yuejiaxmz.com/news/view/312165
相关内容
语音识别的应用实例语音识别技术的应用及示例
实战案例:AI在语音识别与语音合成领域的应用
语音识别在生活中的应用举例
语音识别学习案例记录
Android语音识别技术详解及实例代码
语音识别软件哪个好?语音识别打字软件
语音识别应用案例 | 语音助手
语音识别软件哪个好用?语音识别转文字app
AI 声音:数字音频、语音识别、TTS 简介与使用示例