과대 신호 비행 의 음성 기술 을 사용 하여 음성 인식 을 실현 하 다.

14359 단어 android
http://www.tuicool.com/articles/BVfA7n
과대 신호 비행 의 음성 기술 을 사용 하여 음성 인식 을 실현 하 다.
시간. 2014-03-10 19:24:25 
 블 로그
원문  http://my.eoe.cn/1244344/archive/22824.html
현재 점점 더 많은 app 은 음성 기술 을 사용 하고 있다. 음성 합성, 음성 인식, 의미 등 이 든 가끔 은 app 에 음성 기술 을 추가 하면 자신 에 게 시장 사용 자 를 한 명 더 추가 할 수 있다. 여기 서 과 대 신호 의 음성 인식 코드 호출 에 대해 소개 한다.  과대 신호 비의 음성 서 비 스 는 SDK 형식 으로 제 공 된 것 으로 안 드 로 이 드 플랫폼 에 서 는 세 개의 SDK 가 있 으 며, 현재 팝 업 dialog 의 SDK 를 예 로 들 고 있다.SDK 홈 페이지 에서 ( http://open.voicecloud.cn/) 다운로드, 압축 해제 후 몇 개의 폴 더 가 있 습 니 다. 각각 다음 과 같 습 니 다.  使用科大讯飞的语音技术实现语音识别_第1张图片
1. bin 폴 더 아래 는 SpeechDemo. apk 로 핸드폰 에 직접 설치 하여 체험 할 수 있 습 니 다.  2 doc 폴 더 아래 는 개발 문서 로 주요 인터페이스 설명 과 파라미터 소개 가 있 습 니 다.  3. 스스로 개발 하려 면 jar 패키지 와 so 라 이브 러 리 를 도입 해 야 합 니 다. lib 폴 더 아래 는 appid 에 대응 하 는 so 라 이브 러 리 와 jar 패키지 입 니 다.  4 sample 안 은 하나의 프로젝트 로 eclipse 에 직접 가 져 올 수 있 습 니 다. 안 은 주요 인터페이스의 사용 예 입 니 다. run 이후, 즉 bin 아래 의 SpeechDemo 입 니 다.
자, 긴 말 하지 말고 직접 자신의 공 사 를 만들어 서 이 서 비 스 를 사용 해 보 세 요!
새 프로젝트 를 만 듭 니 다. 그 안에 MainActivity 와 activity 가 있 습 니 다.main. xml, 레이아웃 파일 을 수정 하고 단 추 를 추가 합 니 다.
<Button 
  android:id="@+id/startRecognizer"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="startRecognizer"/>

<TextView
  android:id="@+id/result"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="result:"
  android:layout_below="@id/startRecognizer" />

안 드 로 이 드 에는 세 개의 sdk 가 있 는데 각각 세 가지 기능 이 있 고 세 개의 sdk 의 차이 점 은 참조 합 니 다.http://club.voicecloud.cn/forum.php?mod=viewthread&tid=6843  현재 인터페이스 가 있 는 SDK 를 예 로 들 면, 사용 할 때 필요 한 것 은 개발 패키지 에 있 는 msc. jar 와 libmsc. so 입 니 다. libms. so 를 프로젝트 에 있 는 libsarmeabi 폴 더 에 넣 고, msc. jar 를 프로젝트 에 있 는 libs 폴 더 에 넣 습 니 다.
MainActivity 에 단 추 를 추가 하 는 클릭 이벤트 입 니 다. 구체 적 인 코드 는 다음 과 같 습 니 다.
package com.personal.iflytekdemo;
import com.iflytek.cloud.speech.RecognizerResult;  import com.iflytek.cloud.speech.SpeechConstant;  import com.iflytek.cloud.speech.SpeechError;  import com.iflytek.cloud.speech.SpeechListener;  import com.iflytek.cloud.speech.SpeechUser;  import com.iflytek.cloud.ui.RecognizerDialog;  import com.iflytek.cloud.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.TextView;  import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
private RecognizerDialog myDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  findViewById(R.id.startRecognizer).setOnClickListener(this);
  SpeechUser.getUser().login(MainActivity.this, null, null, "appid=xxxxxxxx", loginListener);
}

@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 v) {
  // TODO Auto-generated method stub
  switch(v.getId())
  {
  case R.id.startRecognizer:
    myRecognize();
    break;
  default :
    break;

  }
}

private SpeechListener loginListener = new SpeechListener(){

  @Override
  public void onCompleted(SpeechError error) {
    // TODO Auto-generated method stub
    if(error!=null)
      Toast.makeText(MainActivity.this,"login failed", Toast.LENGTH_SHORT).show();
    else
      Toast.makeText(MainActivity.this,"login success", Toast.LENGTH_SHORT).show();
  }

  @Override
  public void onData(byte[] arg0) {
    // TODO Auto-generated method stub

  }

  @Override
  public void onEvent(int arg0, Bundle arg1) {
    // TODO Auto-generated method stub

  }

};

private void myRecognize()
{
  myDialog =new RecognizerDialog(this);
  //       
  myDialog.setParameter(SpeechConstant.DOMAIN, "iat");
  //         
  myDialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
  //        
  myDialog.setParameter(SpeechConstant.ACCENT, "mandarin");
  //        
  myDialog.setParameter(SpeechConstant.SAMPLE_RATE, "16000");
  //      
  myDialog.setListener(recognizerDialogListener);
  //    
  myDialog.show();
}

private RecognizerDialogListener recognizerDialogListener = new RecognizerDialogListener(){

  @Override
  public void onError(SpeechError error) {
    // TODO Auto-generated method stub

  }

  @Override
  public void onResult(RecognizerResult result, boolean isLast) {
    // TODO Auto-generated method stub
    ((TextView)findViewById(R.id.result)).append(result.getResultString());
  }

};

}
그리고 AndroidManifest. xml 에 다음 권한 을 추가 합 니 다.
使用科大讯飞的语音技术实现语音识别_第2张图片
자, 마지막 으로 운행 을 시작 하 겠 습 니 다. 다음은 필자 의 운행 결과 캡 처 입 니 다.  使用科大讯飞的语音技术实现语音识别_第3张图片
使用科大讯飞的语音技术实现语音识别_第4张图片
돌아 온 결 과 는 제 이 슨 형식 입 니 다. 다음은 돌아 온 제 이 슨 결 과 를 분석 해 야 합 니 다. 구체 적 인 분석 방법 은 sample 에 있 는 demo 프로젝트 에 도 있 습 니 다. 홈 페이지 에서 다운로드 한 개발 가방 중 demo 프로젝트 의 com. iflytek. mscdmo. util. JSonParser. java 를 참조 하 십시오.  여기까지 입 니 다. 오, 음성 여행 을 시작 하 세 요!

좋은 웹페이지 즐겨찾기