このガイドでは、Fun-ASR-Realtime のリアルタイム音声認識用 Android SDK を使用して、音声をテキストに変換する方法について説明します。
クイックスタート
-
SDK をダウンロードしてサンプルコードを実行します:
- 最新のSDKパッケージをダウンロードしてください。
- ZIPパッケージを展開します。AAR形式のSDKは
app/libsディレクトリにあります。これをプロジェクトの依存関係に追加してください。Android C++統合の場合は、ZIPパッケージ内のandroid_libsとandroid_includeを使用して動的ライブラリとヘッダーファイルを取得してください。 - Android Studioでプロジェクトを開きます。サンプルコードは
DashFunAsrSpeechTranscriberActivity.javaにあります。APIキーを置き換えて機能を試してください。
呼び出し手順
- SDK を初期化します。
- ユースケースに合わせてパラメータを設定します。
initializeメソッドのparameters引数を使用して接続および制御パラメータを設定し、setParamsメソッドを使用して音声認識パラメータを設定します。 startDialogを呼び出して認識を開始します。onNuiAudioStateChangedコールバックで、音声状態に基づいて録音デバイスを開始します。onNuiNeedAudioDataコールバックで録音データを継続的に供給するか、updateAudioを呼び出して録音データをアクティブにプッシュします。onNuiEventCallbackコールバックで、イベントをリッスンし、音声認識結果を取得します。stopDialogを呼び出して認識を停止し、EVENT_TRANSCRIBER_COMPLETE イベントをリッスンして認識が終了したことを確認します。- 認識が不要になったら、
releaseを呼び出してSDKリソースを解放してください。
リクエストパラメーター
接続および制御パラメータ
これらのパラメータを設定するには、initializeメソッドのparameters引数にJSON文字列を渡します。
- 例: 以下はJSON文字列の例です。すべてのパラメータが記載されているわけではありません。コードを記述する際は、必要に応じて他のパラメータを追加してください。
{
"url": "wss://dashscope.aliyuncs.com/api-ws/v1/inference",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
-
パラメーター
パラメーター タイプ 必須 説明 urlStringはい サービスアドレス: wss://dashscope.aliyuncs.com/api-ws/v1/inference- 中国(北京):
wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference - シンガポール:
wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference
{WorkspaceId}を実際の ワークスペースID に置き換えます。apikeyStringはい API キー。 service_modeStringはい 実行モードです。リアルタイム音声認識では "1"に固定されます。device_idStringはい エンドユーザーを識別する一意の文字列です。アプリ内のユーザーIDやクライアント生成の一意のデバイス識別子に設定できます。このIDは主にログトレースとトラブルシューティングに使用されます。 audio_update_manuallyStringいいえ アクティブな音声データプッシュを有効にするかどうかです。デフォルト: "false"。"true"に設定されており、SDKバージョンがAECやVADなどのオンデバイス音声処理機能をサポートしている場合、これらの機能はデフォルトで有効になります。workspaceStringいいえ オンデバイスリソースファイルが保存されているパスです。このパラメータは、 audio_update_manuallyが"true"に設定されており、AECやVADなどのオンデバイス音声処理機能が有効な場合に必須です。debug_pathStringいいえ ログファイルの保存パス。このパラメーターは、 initializeメソッドでsave_logが true に設定されている場合にのみ有効です。この場合、ログファイルのパスを設定する必要があり、設定しない場合はエラーが発生します。ローカルには最大2つのログファイルが保持されます。save_wavStringいいえ デバッグ音声ファイルを保存するかどうかです。音声ファイルは debug_pathの下に保存されます。デフォルト:"false"。有効な値:- "true":ファイルを保存します。
- "false":ファイルを保存しません。
initializeメソッドでsave_logが true に設定されている場合にのみ有効です。さらに、debug_pathも設定する必要があります。max_log_file_sizeintいいえ ログファイルの最大サイズ(バイト単位)。このパラメーターは、 initializeメソッドでsave_logが true に設定されている場合にのみ有効です。デフォルト:104857600(100 * 1024 * 1024 バイト、つまり 100 MiB)。log_track_levelintいいえ ログコールバック( onNuiLogTrackCallback)を通じて送信されるログコンテンツのフィルターレベルです。デフォルト:2。有効な値:- 0: LOG_LEVEL_VERBOSE
- 1: LOG_LEVEL_DEBUG
- 2: LOG_LEVEL_INFO
- 3: LOG_LEVEL_WARNING
- 4: LOG_LEVEL_ERROR
- 5:LOG_LEVEL_NONE(この機能を無効化)
log_track_levelとlevel(initializeメソッドで設定)が組み合わさって、最終的にコールバックに送信されるログを決定します。ログがコールバックに送信されるのは、そのレベル値がlog_track_levelとlevelの両方以上の場合のみです。例えば、log_track_levelが2(INFO)に設定され、levelが3(WARNING)に設定されている場合、WARNINGレベル以上のログ(値 >= 3)のみがコールバックに送信されます。enable_reconnectionStringいいえ ネットワーク再接続後に送信を再開するかどうかです。デフォルト: "false"。aec_paramsobjectいいえ オンデバイスAcoustic Echo Cancellation(AEC)の高度な設定オブジェクトです。このオブジェクトは audio_update_manuallyが"true"に設定されている場合にのみ有効です。aec_params.enable_aecbooleanいいえ オンデバイスAECを有効にするかどうかです。 audio_update_manuallyが"true"に設定されており、SDKバージョンがオンデバイスAECをサポートしている場合、この機能はデフォルトで有効になります。aec_params.save_audiobooleanいいえ デバイス上のAECモジュールによって処理された音声を保存するかどうかを指定します。 save_wavが"true"に設定され、かつdebug_pathが指定されている場合、この機能はデフォルトで有効になり、AEC音声データはdebug_pathに保存されます。aec_params.enable_aec_data_callbackbooleanいいえ AEC処理済みデータをアプリケーションに返すかどうかを指定します。デフォルト値:false。有効にした場合、 onNuiAssistEventCallbackのEVENT_AEC_DATAイベントからデータを受信します。vad_paramsobjectいいえ オンデバイスVoice Activity Detection(VAD)の高度な設定オブジェクトです。このオブジェクトは audio_update_manuallyが"true"に設定されている場合にのみ有効です。vad_params.enable_aecbooleanいいえ オンデバイスVADを有効にするかどうかです。 audio_update_manuallyが"true"に設定されており、SDKバージョンがオンデバイスVADをサポートしている場合、この機能はデフォルトで有効になります。vad_params.save_audiobooleanいいえ デバイス上のVADモジュールによって処理された音声を保存するかどうかを指定します。 save_wavが"true"に設定され、かつdebug_pathが指定されている場合、この機能はデフォルトで有効になり、VAD音声データはdebug_pathに保存されます。
音声認識パラメータ
これらのパラメータを設定するには、setParamsメソッドのparams引数にJSON文字列を渡します。
- 例: 以下はJSON文字列の例です。すべてのパラメータが記載されているわけではありません。コードを記述する際は、必要に応じて他のパラメータを追加してください。
{
"service_type": 4,
"nls_config": {
"model": "fun-asr-realtime",
"sr_format": "pcm",
"sample_rate": "16000"
}
}
-
パラメーター
トップレベルパラメーター タイプ 必須 説明 service_typeintはい
音声サービスタイプです。リアルタイム音声認識では
4に固定されます。nls_configobjectはい
音声認識のコア設定オブジェクトです。モデル選択や認識品質制御などの主要なパラメータが含まれています。
nls_config.modelstringはい
例で使用されているモデルです。モデル情報については、「サポートされているモデルとリージョン」を参照してください。
nls_config.sr_formatstringはい
オーディオフォーマット。
有効な値:
pcmopus
重要Opus音声の場合、PCM音声をSDKに渡します。SDKは内部でそれをOpusとしてエンコードします。
nls_config.sample_rateintはい
サンプリングレート(Hz)。
有効な値:8 kHzモデルは 8000 Hzのみをサポートし、その他のモデルは任意のサンプルレートをサポートします。
重要AECやVADなどのオンデバイス音声処理機能が有効になっている場合、8000 Hzはサポートされません。
nls_config.semantic_punctuation_enabledbooleanいいえ
セマンティックセグメンテーションを有効にするかどうか。
デフォルト値:false。
- true:セマンティックセグメンテーションを有効にし、VADセグメンテーションを無効にします。
- false(デフォルト):VADセグメンテーションを有効にし、セマンティックセグメンテーションを無効にします。
セマンティックセグメンテーションはより正確で、会議の文字起こしシナリオに適しています。VAD(Voice Activity Detection)セグメンテーションはレイテンシが低く、対話型シナリオに適しています。
nls_config.max_sentence_silenceintいいえ
セグメンテーション用のVAD無音閾値(ミリ秒単位)です。発話区間の後の無音時間がこの閾値を超えると、システムは文が終了したと判断します。
semantic_punctuation_enabledが true に設定されている場合、このパラメーターはsentence_endを返す基準としては使用されませんが、低く設定しすぎると認識パフォーマンスに影響を与える可能性があります。デフォルト値:1300。
有効な値:[200, 6000]。
nls_config.multi_threshold_mode_enabledbooleanいいえ
重要
semantic_punctuation_enabledが false の場合にのみ有効です。マルチ閾値モードを有効にするかどうかです。有効にすると、VADセグメントが長くなりすぎるのを防ぎます。
デフォルト値:false。
nls_config.heartbeatbooleanいいえ
ハートビートパケットを有効にするかどうか。
デフォルト値:false。
- true:無音音声が連続して送信されている場合でも、サーバーへの接続を維持します。
- false(デフォルト):無音音声が連続して送信されている場合でも、一定時間後に接続がタイムアウトして閉じられます。
無音音声とは、オーディオファイルまたはデータストリーム内で音声信号を含まないコンテンツを指します。AudacityやAdobe Auditionなどのオーディオ編集ソフトウェアを使用するか、FFmpegなどのコマンドラインツールを使用して、無音音声を生成できます。
nls_config.vocabulary_idstringいいえ
事前コンパイル済みホットワードリストの ID。
ホットワードリスト作成APIを呼び出して、事前にこのIDを生成してください。認識時にこのIDを渡すことで、リスト内のホットワードを使用できます。
語彙が既知で比較的安定しており、リクエスト間で同じ単語リストを再利用する必要があるシナリオに適しています。
使用方法の詳細については、「事前コンパイル済みホットワード」を参照してください。
nls_config.language_hintsarray[string]いいえ
認識対象の音声の言語です。デフォルト値はなく、設定されていない場合はモデルが言語を自動検出します。
1 つの値を設定できます。複数設定した場合は、最初の値のみが有効です。
クリックしてサポートされている言語コードを表示
-
fun-asr-realtime, fun-asr-realtime-2025-11-07:
- zh: 中国語
- en: 英語
- ja: 日本語
- ko: 韓国語
- vi: ベトナム語
- th: タイ語
- id: インドネシア語
- ms: マレー語
- tl: フィリピノ語
- hi: ヒンディー語
- ar: アラビア語
- fr: フランス語
- de: ドイツ語
- es: スペイン語
- pt: ポルトガル語
- ru: ロシア語
- it: イタリア語
- nl: オランダ語
- sv: スウェーデン語
- da: デンマーク語
- fi: フィンランド語
- no: ノルウェー語
- el: ギリシャ語
- pl: ポーランド語
- cs: チェコ語
- hu: ハンガリー語
- ro: ルーマニア語
- bg: ブルガリア語
- hr: クロアチア語
- sk: スロバキア語
-
fun-asr-realtime-2026-02-28:
- zh: 中国語
- en: 英語
- ja: 日本語
-
fun-asr-realtime-2025-09-15:
- zh: 中国語
- en: 英語
-
fun-asr-flash-8k-realtime, fun-asr-flash-8k-realtime-2026-01-28:
- zh: 中国語
-
fun-asr-mtl-realtime, fun-asr-mtl-realtime-2025-12-10:
- zh: 中国語
- en: 英語
- ja: 日本語
- ko: 韓国語
- vi: ベトナム語
- id: インドネシア語
- th: タイ語
nls_config.speech_noise_thresholdfloatいいえ
音声とノイズを区別するための閾値で、Voice Activity Detection(VAD)の感度を調整するために使用されます。
有効な値:[-1.0, 1.0]。
値の説明:
- 値が -1 に近いほど:ノイズ閾値が下がり、ノイズが音声として認識されやすくなるため、より多くのノイズが文字起こしされる可能性があります。
- 値が +1 に近いほど:ノイズ閾値が上がり、音声がノイズとして誤判定されやすくなるため、一部の音声がフィルタリングされる可能性があります。
これは高度な設定パラメータです。これを調整すると認識結果に大きな影響を与える可能性があります。推奨事項:
- 調整前に結果を徹底的にテストおよび検証してください。
- 実際の音声環境に基づいて小幅に調整します(0.1 のステップを推奨)。
nls_config.special_word_filterobjectいいえ
音声認識中に処理するセンシティブワードを指定し、異なるセンシティブワードに対して異なる処理方法を設定することをサポートします。詳細については、「センシティブワードフィルタリング」を参照してください。
nls_config.enable_connection_fast_checkbooleanいいえ
ネットワーク障害を迅速に検出し、できるだけ早く報告するかどうかです。デフォルト:false。
主要インターフェース
NativeNui
initialize
音声認識SDKインスタンスを初期化します。SDKはシングルトンです。release を呼び出す前に、複数回初期化しないでください。
このメソッドはブロックされるため、非 UI スレッドで呼び出してください。
- メソッドシグネチャ
public synchronized int initialize(final INativeNuiCallback callback,
String parameters,
final Constants.LogLevel level,
final boolean save_log)
-
パラメーター
パラメーター タイプ 説明 callbackINativeNuiCallbackイベントおよびデータコールバックインターフェースの実装。 parametersString認証、接続、およびデバッグパラメータを含むJSON文字列です。「接続および制御パラメータ」を参照してください。 levelConstants.LogLevelSDK 自体のログの出力レベルを制御します。 save_logbooleanローカルログを保存するかどうかを指定します。 trueに設定した場合、接続および制御パラメーター のdebug_pathでパスを指定し、必要に応じてmax_log_file_sizeでファイルサイズを設定できます。 - 戻り値
setParams
JSON形式の 音声認識パラメータ を設定します。startDialog の前にこのメソッドを呼び出してください。
- メソッドシグネチャ
public synchronized int setParams(String params)
-
パラメーター
パラメーター タイプ 説明 paramsString音声認識パラメータ。 - 戻り値
startDialog
認識を開始します。
- メソッドシグネチャ
public synchronized int startDialog(VadMode vad_mode, String dialog_params)
-
パラメーター
パラメーター タイプ 説明 vad_modeVadModeVAD モード。
VadMode.TYPE_P2Tに固定されています。dialog_paramsString接続および制御パラメータの
apikeyパラメータに一時的なAPIキーを使用している場合、有効期限が切れたときにここで更新できます。コンテキストを使用して認識精度を向上させるには、ここでコンテキストを更新します。
コンテンツは JSON 形式です:
{ "apikey": "st-****", "input_context": [ { "role": "user", "content": [ { "text": "xxxxx", "type": "input_text" } ] } ] } - 戻り値
stopDialog
認識を終了します。このメソッドを呼び出すと、サーバーは最終的な認識結果を返し、タスクを終了します。
- メソッドシグネチャ
public synchronized int stopDialog();
- 戻り値
cancelDialog
認識を即座に終了します。このメソッドを呼び出すと、サーバーが最終的な認識結果を返すのを待たずに、タスクがすぐに終了します。
- メソッドシグネチャ
public synchronized int cancelDialog();
- 戻り値
updateAction
インタラクション中にアクションコマンドを送信して、認識コンテキストなどのランタイム動作を更新します。
- メソッドシグネチャ
public synchronized int updateAction(String params);
-
パラメーター
パラメーター タイプ 説明 paramsString認識コンテキストなど、ランタイム動作を更新するために使用されるJSON文字列です。 params.typeString"action"に設定します。params.commandStringランタイムコマンド。有効な値: context:コンテキストを即座に更新して認識精度を向上させます。play_start:オンデバイスAECを使用する場合、プレーヤーが音声の再生を開始したことをSDKに通知します。play_over:オンデバイスAECを使用する場合、プレーヤーが音声の再生を終了したことをSDKに通知します。
params.contextStringcommandがcontextに設定されている場合、コンテキストを即座に更新して認識精度を向上させます。値は以下の例に示すようなJSON文字列です。
{
"context": [
{
"role": "user",
"content": [
{
"text": "xxx",
"type": "input_text"
}
]
}
]
}
- 戻り値
updateAudio
audio_update_manually が "true" に設定されている場合、このメソッドを呼び出して録音データをアクティブにプッシュします。onNuiNeedAudioData を通じてデータを供給する代わりに使用します。
- メソッドシグネチャ
public synchronized int updateAudio(byte[] data, int len,
boolean first_pack);
-
パラメーター
パラメーター タイプ 説明 databyte[]プッシュするオーディオデータ。 lenintプッシュするオーディオデータのバイト数。 first_packbooleanこのパラメーターは無視してください。 - 戻り値
updateRefAudio
audio_update_manually が "true" に設定されており、オンデバイスAECが有効な場合、このメソッドを呼び出してプレーヤーが再生した音声を参照信号としてプッシュします。
- メソッドシグネチャ
public synchronized int updateRefAudio(byte[] data, int len,
boolean first_pack);
-
パラメーター
パラメーター タイプ 説明 databyte[]プッシュするオーディオデータ。 lenintプッシュするオーディオデータのバイト数。 first_packbooleanこのパラメーターは無視してください。 - 戻り値
release
SDKのすべての内部リソースを解放します。このメソッドを呼び出すと、SDKインスタンスは使用できなくなります。再度使用する場合は、initialize を呼び出して再初期化する必要があります。
- メソッドシグネチャ
public synchronized int release();
- 戻り値
GetVersion
現在の SDK バージョン情報を取得します。
- メソッドシグネチャ
public synchronized String GetVersion();
-
戻り値
現在の SDK バージョン情報。
INativeNuiCallback:リスナーコールバック
onNuiEventCallback:イベントおよび音声認識結果のリスニング
- メソッドシグネチャ
void onNuiEventCallback(NuiEvent event, final int resultCode, final int arg2, KwsResult kwsResult, AsrResult asrResult);
-
パラメーター
パラメーター タイプ 説明 eventNuiEventコールバックイベント。 resultCodeintEVENT_ASR_ERRORイベントが発生した場合にのみ有効です。arg2int予約済みパラメーター。 asrResultAsrResult音声認識結果。 kwsResultKwsResult音声ウェイクアップ機能です。このパラメータを使用する必要はありません。
onNuiAudioStateChanged:音声状態のリスニング
SDKはこのコールバックを使用して、録音の開始または停止のタイミングを通知します。
- メソッドシグネチャ
void onNuiAudioStateChanged(AudioState state);
-
AudioState の状態
状態 説明 STATE_OPENインタラクションが開始されました。録音デバイスを開いて録音を開始できます。 STATE_PAUSEインタラクションが停止しました。録音を停止できます。 STATE_CLOSESDKインスタンスが解放されました。録音デバイスを完全に閉じることができます。
onNuiNeedAudioData:認識用の音声データの供給
認識開始後、このコールバックは継続的にトリガーされます。このコールバックで認識用の音声データを供給してください。
- メソッドシグネチャ
int onNuiNeedAudioData(byte[] buffer, int len);
-
パラメーター
パラメーター タイプ 説明 bufferbyte[]格納するオーディオデータ。 lenint格納するオーディオデータのバイト数。 -
戻り値
実際に格納されたバイト数。
onNuiAssistEventCallback:補助イベントおよびデータの受信
このコールバックは、SDKから補助イベントおよび関連データを受信します。
- メソッドシグネチャ
void onNuiAssistEventCallback_(int event, byte[] info, int info_len,
byte[] data);
-
パラメーター
パラメーター タイプ 説明 eventintNuiEventイベントです。infoStringこのパラメーターは無視してください。 info_lenintこのパラメーターは無視してください。 databyte[]補助データ(AEC によって処理されたオーディオデータなど)。
onNuiLogTrackCallback:トレースログのリスニング
このコールバックは、トラブルシューティングとデバッグに役立つSDKの詳細な内部ログを受信します。
default void onNuiLogTrackCallback(Constants.LogLevel level, String log)
NuiEvent:イベントタイプ
| イベント | 説明 |
|---|---|
EVENT_TRANSCRIBER_STARTED | タスクが正常に開始されました。 |
EVENT_VAD_START | タスク開始直後にトリガーされます。これは発話の開始が検出されたことを意味するものではありません。 |
EVENT_VAD_END | 発話の終わりが検出されました。 |
EVENT_ASR_PARTIAL_RESULT | 中間音声認識結果。 |
EVENT_ASR_WARN | 再接続が有効な場合のネットワーク障害など、音声認識を中断しない警告が発生しました。 |
EVENT_ASR_ERROR | 音声認識中にエラーが発生しました。 |
EVENT_MIC_ERROR | 2 秒間連続で音声データが受信されなかった場合にトリガーされます。 |
EVENT_SENTENCE_END | 文の終わりが検出されました。その文の完全な認識結果が返されます。 |
EVENT_TRANSCRIBER_COMPLETE | 音声認識が終了しました。 |
EVENT_AEC_DATA | AEC によって処理されたオーディオデータ。 |