![タイピングより早い!? Windowsの音声入力の素晴らしさをご紹介。Wordでも標準で音声入力ができるようになりました。最速・最も快適に音声入力する方法を紹介します。](https://i.ytimg.com/vi/QRwmtLH2Zho/hqdefault.jpg)
コンテンツ
- Speech-to-Textユーザーインターフェイスの構築
- Androidアプリに音声認識を追加する
- 1. RecognizerIntentを起動します
- 2.音声応答を受信する
- プロジェクトをテストする
- まとめ
多くのアプリ、サービス、および家庭用ガジェットは、音声認識を使用してユーザーエクスペリエンスを向上させ、アクセシビリティを向上させます。音声認識を利用するAndroidアプリは数え切れないほどありますが、その中で最も注目すべきものはGoogle Assistantです。この機能を独自のAndroidアプリケーションに追加してみませんか?
この記事では、AndroidのSpeech-to-Textインテントをすばやく簡単に使い始める方法を紹介します。これは、さまざまなアプリケーションで役立ちます。たとえば、音声認識を使用して、退屈な手動データ入力を自動化し、字幕を自動的に生成します。または、音声入力を「聞き取り」、テキストに変換し、このテキストを翻訳して結果を表示する翻訳アプリの基盤としてもユーザー。
作成するアプリケーションの種類に関係なく、音声認識はユーザーにアプリと対話する代替方法を提供することにより、アクセシビリティを向上させることができます。たとえば、移動性、器用さ、または視覚に問題がある人は、タッチスクリーンやキーボードではなく、音声コマンドを使用してモバイルアプリケーションを簡単に操作できます。さらに、世界保健機関(WHO)によると、10億人以上が何らかの形で障害を抱えており、これは世界人口の約15%に相当します。アプリケーションにアクセシビリティ機能を追加すると、潜在的な視聴者を大幅に増やすことができます。
この記事の終わりまでに、音声を録音してテキストに変換し、そのテキストを画面に表示する簡単な音声合成アプリケーションを作成しました。
Speech-to-Textユーザーインターフェイスの構築
まず、「空のアクティビティ」テンプレートを使用して新しいAndroidプロジェクトを作成します。
タップするとAndroidのSpeech-to-Textインテントをトリガーし、アプリが音声入力を受け入れる準備ができていることを示すダイアログを表示するボタンで構成されるシンプルなアプリケーションを作成します。ユーザーが発言を終了すると、入力はテキストに変換され、TextViewの一部として表示されます。
レイアウトを作成することから始めましょう。
これにより、次のレイアウトが得られます。
Androidアプリに音声認識を追加する
2つのステップで音声入力をキャプチャして処理します。
1. RecognizerIntentを起動します
Speech-to-Text変換を実行する最も簡単な方法は、RecognizerIntent.ACTION_RECOGNIZE_SPEECHを使用することです。このインテントは、Androidの使い慣れたマイクダイアログボックスを起動して、ユーザーに音声入力を促します。
ユーザーが会話を停止すると、ダイアログが自動的に閉じ、ACTION_RECOGNIZE_SPEECHが録音された音声を音声認識装置を介して送信します。
バンドルされたエクストラとともにstartActivityForResult()を使用してRecognizerIntent.ACTION_RECOGNIZE_SPEECHを開始します。特に指定しない限り、認識エンジンはデバイスのデフォルトのロケールを使用することに注意してください。
public void onClick(View v){// RecognizerIntentインテントをトリガー// Intentインテント= new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); try {startActivityForResult(intent、REQUEST_CODE); } catch(ActivityNotFoundException a){}}
2.音声応答を受信する
音声認識操作が完了すると、ACTION_RECOGNIZE_SPEECHは文字列の配列として呼び出しアクティビティに結果を送り返します。
startActivityForResult()を介してRecognizerIntentをトリガーしたため、音声認識呼び出しを開始したActivityでonActivityResult(int requestCode、int resultCode、Intent data)をオーバーライドして結果データを処理します。
結果は、音声認識装置の信頼度の降順で返されます。そのため、最も正確なテキストを表示するには、返されたArrayListからゼロの位置を取得し、TextViewに表示する必要があります。
@Override //インテント呼び出し側のActivity //でOnActivityResultメソッドを定義するprotected void onActivityResult(int requestCode、int resultCode、Intent data){super.onActivityResult(requestCode、resultCode、data); switch(requestCode){case REQUEST_CODE:{// RESULT_OKが返される場合... // if(resultCode == RESULT_OK && null!= data){// ...その後ArrayList // ArrayListを取得する Speech-to-Textはアクティブなインターネット接続を必要としないため、ユーザーがオフラインであっても正しく機能します。 上記のすべての手順を完了すると、MainActivityは次のようになります。 import android.content.ActivityNotFoundException; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.content.Intent; import android.speech.RecognizerIntent; import android.widget.TextView; import android.view.View; import java.util.ArrayList;パブリッククラスMainActivityはAppCompatActivityを拡張します{private static final int REQUEST_CODE = 100;プライベートTextView textOutput; @Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textOutput =(TextView)findViewById(R.id.textOutput); } //ボタンが押された状態でこのメソッドが呼び出される// public void onClick(View v)//「RecognizerIntent.ACTION_RECOGNIZE_SPEECH」アクションでインテントを作成// {Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); try {//アクティビティを開始し、応答を待機します// startActivityForResult(intent、REQUEST_CODE); } catch(ActivityNotFoundException a){}} @Override //結果の処理// protected void onActivityResult(int requestCode、int resultCode、Intent data){super.onActivityResult(requestCode、resultCode、data); switch(requestCode){case REQUEST_CODE:{if(resultCode == RESULT_OK && null!= data){ArrayList GitHubから完成したプロジェクトをダウンロードできます。 アプリケーションをテストするには: この記事では、Speech-to-Textインテントを使用して、Androidアプリケーションに音声認識をすばやく簡単に追加する方法を説明しました。驚くべきまたは革新的な方法で音声認識を使用するAndroidアプリに遭遇しましたか? 次: Google ARCoreで拡張現実Androidアプリを構築するプロジェクトをテストする
まとめ