一个语音识别的例子

发布时间:2024-11-29 12:20

使用语言学习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 简介与使用示例

随便看看