Skip to main content

Fun-ASR-Realtime Android SDK

このガイドでは、Fun-ASR-Realtime のリアルタイム音声認識用 Android SDK を使用して、音声をテキストに変換する方法について説明します。

クイックスタート

  1. API キーの取得
  2. SDK をダウンロードしてサンプルコードを実行します:
    • 最新のSDKパッケージをダウンロードしてください。
    • ZIPパッケージを展開します。AAR形式のSDKは app/libs ディレクトリにあります。これをプロジェクトの依存関係に追加してください。Android C++統合の場合は、ZIPパッケージ内の android_libs と android_include を使用して動的ライブラリとヘッダーファイルを取得してください。
    • Android Studioでプロジェクトを開きます。サンプルコードは DashFunAsrSpeechTranscriberActivity.java にあります。APIキーを置き換えて機能を試してください。

呼び出し手順

  1. SDK を初期化します。
  2. ユースケースに合わせてパラメータを設定します。initializeメソッドのparameters引数を使用して接続および制御パラメータを設定し、setParamsメソッドを使用して音声認識パラメータを設定します。
  3. startDialog を呼び出して認識を開始します。
  4. onNuiAudioStateChanged コールバックで、音声状態に基づいて録音デバイスを開始します。
  5. onNuiNeedAudioData コールバックで録音データを継続的に供給するか、updateAudio を呼び出して録音データをアクティブにプッシュします。
  6. onNuiEventCallback コールバックで、イベントをリッスンし、音声認識結果を取得します。
  7. stopDialog を呼び出して認識を停止し、EVENT_TRANSCRIBER_COMPLETE イベントをリッスンして認識が終了したことを確認します。
  8. 認識が不要になったら、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はいオーディオフォーマット。有効な値:
    • pcm
    • opus
    Opus音声の場合、PCM音声をSDKに渡します。SDKは内部でそれをOpusとしてエンコードします。
    nls_config.sample_rateintはいサンプリングレート(Hz)。有効な値:8 kHzモデルは 8000 Hzのみをサポートし、その他のモデルは任意のサンプルレートをサポートします。
    AECやVADなどのオンデバイス音声処理機能が有効になっている場合、8000 Hzはサポートされません。
    nls_config.max_sentence_silenceintいいえセグメンテーション用のVAD無音閾値(ミリ秒単位)です。発話区間の後の無音時間がこの閾値を超えると、システムは文が終了したと判断します。デフォルト値:1300。有効な値:[200, 6000]。
    nls_config.multi_threshold_mode_enabledbooleanいいえマルチ閾値モードを有効にするかどうかです。有効にすると、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:
      • 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-flash-8k-realtime, fun-asr-flash-8k-realtime-2026-01-28:
      • zh: 中国語
    • 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

ランタイムアクションを送信し、オンデバイス AEC に再生状態を通知します。
  • メソッドシグネチャ
public synchronized int updateAction(String params);
  • パラメーター
    パラメータータイプ説明
    paramsStringランタイムアクションを含む JSON 文字列。
    params.typeString"action" に設定します。
    params.commandStringplay_start: オンデバイス AEC を使用する場合、プレーヤーが音声の再生を開始したことを SDK に通知します。play_over: オンデバイス AEC を使用する場合、プレーヤーが音声の再生を終了したことを SDK に通知します。
  • 戻り値

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_ERROR2 秒間連続で音声データが受信されなかった場合にトリガーされます。
EVENT_SENTENCE_END文の終わりが検出されました。その文の完全な認識結果が返されます。
EVENT_TRANSCRIBER_COMPLETE音声認識が終了しました。
EVENT_AEC_DATAAEC によって処理されたオーディオデータ。