English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
今日、ネットで見つけた音声認識の例を実装してみました。個人的には面白く感じましたので、コードをここに貼り付け、皆さんに共有します:
Androidでは、RecognizerIntentを通じて音声認識が行われますが、設定が見つからないとActivityNotFoundExceptionが投げられますので、この例外をキャッチする必要があります。また、音声認識はGoogleクラウドデータにアクセスするため、エミュレータではテストできません。したがって、モバイルのネットワークがオフラインだと音声認識が実行できません!モバイルのネットワークを必ずオンにしてください。もしモバイルが音声認識機能を持っていない場合でも、認識を有効にすることはできません!
以下は、RecognizerIntentActivity内のコードです:
public class RecognizerIntentActivity extends Activity { private Button btnReconizer; private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-生成されたメソッドスタブ super.onCreate(savedInstanceState); setContentView(R.layout.reconizer);} btnReconizer=(Button) this.findViewById(R.id.btnRecognizer); btnReconizer.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-生成されたメソッドスタブ try{ //Intentを通じて音声認識のモードを伝達し、音声を開始 Intent intent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); //言語モデルと自由形態の音声認識 intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); //音声開始のヒントを表示 intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "音声を開始"); //音声認識を開始 startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); }catch (Exception e) { // TODO: handle exception e.printStackTrace(); Toast.makeText(getApplicationContext(), "音声デバイスが見つかりません", 1).show(); } } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-生成されたメソッドスタブ //Googleから得たデータの取得をキャリバック if(requestCode==VOICE_RECOGNITION_REQUEST_CODE && resultCode==RESULT_OK){ //音声の文字を取得 ArrayList<String> results=data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); String resultString=""; for(int i=0;i<results.size();i++{ resultString+=results.get(i); } Toast.makeText(this, resultString, 1).show(); } super.onActivityResult(requestCode, resultCode, data); } }
主な原理は、音声をGoogleクラウドに送信し、クラウドで処理し、対応するデータをクライアントに送信することです。
最後に、manifestにネットワークアクセス権限を追加することを忘れないでください:
<uses-permission android:name="android.permission.INTERNET" />
実行後の効果:
音声ボタンをクリックして話し始めてください(この際、携帯電話のネットワークがオンになっていることを確認してください):
クラウドデータを待っています。これは、私の環境では2Gのカードが非常に長い時間待っても読み込めない場合、会社に戻って会社のWiFiで試してみてください。クラウドデータが取得できれば、Toast メッセージで表示されます。
これで Android 语音识别技術の資料整理が完了しました。今後も関連する資料を追加していく予定です。皆様のこのサイトへのサポートに感謝します!
声明:この記事の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーが自発的に貢献し、アップロードした内容であり、このサイトは所有権を持ちません。また、人工編集は行われておらず、関連する法的責任も負いません。著作権侵害が疑われる場合は、以下のメールアドレスにご連絡ください:notice#oldtoolbag.com(メールを送信する際、#を@に変更してください)で通報してください。関連する証拠を提供していただければ、侵害が確認されるとすぐに、このサイトは侵害された内容を削除します。