과대 신호 비행 의 음성 기술 을 사용 하여 음성 인식 을 실현 하 다.
14359 단어 android
과대 신호 비행 의 음성 기술 을 사용 하여 음성 인식 을 실현 하 다.
시간. 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. 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 에 다음 권한 을 추가 합 니 다.
자, 마지막 으로 운행 을 시작 하 겠 습 니 다. 다음은 필자 의 운행 결과 캡 처 입 니 다.
돌아 온 결 과 는 제 이 슨 형식 입 니 다. 다음은 돌아 온 제 이 슨 결 과 를 분석 해 야 합 니 다. 구체 적 인 분석 방법 은 sample 에 있 는 demo 프로젝트 에 도 있 습 니 다. 홈 페이지 에서 다운로드 한 개발 가방 중 demo 프로젝트 의 com. iflytek. mscdmo. util. JSonParser. java 를 참조 하 십시오. 여기까지 입 니 다. 오, 음성 여행 을 시작 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.