[英]Offline Speech Recognition in Android
我在StackOverFlow上搜索了很多有關此問題的內容,但是這些線程的使用時間已超過3年。
我實現了需要互聯網連接的Google Voice Recognition
。 搜索如何使用Offline Voice Recognition
沒有成功。
現在可以離線使用Voice Recognition
嗎?
我的代碼到目前為止:
speechStartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
promtSpeechInput();
}
});
private void promtSpeechInput() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
"Recording...");
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException e) {
Toast.makeText(getApplicationContext(), "Language not supported", Toast.LENGTH_SHORT).show();
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CAMERA_PIC_REQUEST: {
try {
Bitmap image = (Bitmap) data.getExtras().get("data");
ImageView imageView = (ImageView) findViewById(R.id.taskPhotoImage);
imageView.setImageBitmap(image);
} catch (NullPointerException e) {
e.printStackTrace();
}
}
case REQ_CODE_SPEECH_INPUT: {
if(resultCode == RESULT_OK && null != data) {
ArrayList<String> result = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
speechToTextField.setText(speechToTextField.getText()+" " +result.get(0));
}
break;
}
}
}
國王的問候
不適用於Google。
您必須使用另一種解決方案,例如CMU Sphinx。 在這里檢查: Android:不使用Google服務器的語音識別
實際上,您可以脫機使用SpeechRecognizer。
問題在於,如果不使用循環,它就不會連續,並且由於恆定的蜂鳴聲,使用SpeechRecognizer進行循環絕對令人討厭。 蜂鳴聲周圍有多種方法,但是大多數都使蜂鳴聲靜音,並且所有聲音都與之相同。
在步驟中還提到了,您還必須下載“ Google語音輸入”及其語言,這會占用更多存儲空間。 總體而言,您可以脫機使用SpeechRecognizer,但這是一個很大的麻煩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.