すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:Qwen-Audio-ASR-Streaming Android SDK

最終更新日:Sep 29, 2026

このガイドでは、Qwen-Audio-ASR-Streaming のリアルタイム音声認識用 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": "qwen-audio-3.0-asr-flash-streaming",
        "sr_format": "pcm",
        "sample_rate": "16000"
    }
}
  • パラメーター
    トップレベルパラメータータイプ必須説明

    service_type

    int

    はい

    音声サービスタイプです。リアルタイム音声認識では 4 に固定されます。

    nls_config

    object

    はい

    音声認識のコア設定オブジェクトです。モデル選択や認識品質制御などの主要なパラメータが含まれています。

    nls_config.model

    string

    はい

    例で使用されているモデルです。モデル情報については、「サポートされているモデルとリージョン」を参照してください。

    nls_config.sr_format

    string

    はい

    オーディオフォーマット。

    有効な値:

    • pcm
    • opus

    重要Opus音声の場合、PCM音声をSDKに渡します。SDKは内部でそれをOpusとしてエンコードします。

    nls_config.sample_rate

    int

    はい

    サンプリングレート(Hz)。任意のサンプリングレートをサポートします。

    重要AECやVADなどのオンデバイス音声処理機能が有効になっている場合、8000 Hzはサポートされません。

    nls_config.semantic_punctuation_enabled

    boolean

    いいえ

    セマンティックセグメンテーションを有効にするかどうか。

    デフォルト値:false。

    • true:セマンティックセグメンテーションを有効にし、VADセグメンテーションを無効にします。
    • false(デフォルト):VADセグメンテーションを有効にし、セマンティックセグメンテーションを無効にします。

    セマンティックセグメンテーションはより正確で、会議の文字起こしシナリオに適しています。VAD(Voice Activity Detection)セグメンテーションはレイテンシが低く、対話型シナリオに適しています。

    nls_config.max_sentence_silence

    int

    いいえ

    セグメンテーション用のVAD無音閾値(ミリ秒単位)です。発話区間の後の無音時間がこの閾値を超えると、システムは文が終了したと判断します。semantic_punctuation_enabled が true に設定されている場合、このパラメーターは sentence_end を返す基準としては使用されませんが、低く設定しすぎると認識パフォーマンスに影響を与える可能性があります。

    デフォルト値:1300。

    有効な値:[200, 6000]。

    nls_config.multi_threshold_mode_enabled

    boolean

    いいえ

    重要semantic_punctuation_enabled が false の場合にのみ有効です。

    マルチ閾値モードを有効にするかどうかです。有効にすると、VADセグメントが長くなりすぎるのを防ぎます。

    デフォルト値:false。

    nls_config.heartbeat

    boolean

    いいえ

    ハートビートパケットを有効にするかどうか。

    デフォルト値:false。

    • true:無音音声が連続して送信されている場合でも、サーバーへの接続を維持します。
    • false(デフォルト):無音音声が連続して送信されている場合でも、一定時間後に接続がタイムアウトして閉じられます。

    無音音声とは、オーディオファイルまたはデータストリーム内で音声信号を含まないコンテンツを指します。AudacityやAdobe Auditionなどのオーディオ編集ソフトウェアを使用するか、FFmpegなどのコマンドラインツールを使用して、無音音声を生成できます。

    nls_config.vocabulary_id

    string

    いいえ

    事前コンパイル済みホットワードリストの ID。

    ホットワードリスト作成APIを呼び出して、事前にこのIDを生成してください。認識時にこのIDを渡すことで、リスト内のホットワードを使用できます。

    語彙が既知で比較的安定しており、リクエスト間で同じ単語リストを再利用する必要があるシナリオに適しています。

    使用方法の詳細については、「事前コンパイル済みホットワード」を参照してください。

    nls_config.instant_vocabulary

    object

    いいえ

    即時ホットワード。

    キーと値のペアとして渡されます。キーはホットワードテキスト(string)、値はホットワードの重み(integer)です。事前にホットワードリストを作成する必要はありません。重みの範囲は [1, 5] または 50 です。[1, 5] の値の場合、値が大きくなるほどモデルがその単語を出力する可能性が高くなります。50 の値はスーパーホットワードを指定し、リコールを大幅に向上させますが、スーパーホットワードの数は 50 個を超えることはできません。

    一時的なセッションレベルのホットワード最適化に適しています。

    即時ホットワードと事前コンパイル済みホットワードが一緒に設定されている場合、システムは両方のセットをマージします。マージされたセットに 2000 個を超えるホットワードが含まれる場合、システムはランダムに 2000 個を選択して使用します。使用法の詳細については、「即時ホットワード」を参照してください。

    重要即時ホットワードに適用されるモデルと制限については、「即時ホットワード」を参照してください。

    nls_config.language_hints

    array[string]

    いいえ

    認識対象の音声の言語です。デフォルト値はなく、設定されていない場合はモデルが言語を自動検出します。

    最大 4 つの値を設定できます。それ以上設定した場合は、最初の 4 つのみが有効です。

    クリックしてサポートされている言語コードを表示

    • 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: スロバキア語

    nls_config.speech_noise_threshold

    float

    いいえ

    音声とノイズを区別するための閾値で、Voice Activity Detection(VAD)の感度を調整するために使用されます。

    有効な値:[-1.0, 1.0]。

    値の説明:

    • 値が -1 に近いほど:ノイズ閾値が下がり、ノイズが音声として認識されやすくなるため、より多くのノイズが文字起こしされる可能性があります。
    • 値が +1 に近いほど:ノイズ閾値が上がり、音声がノイズとして誤判定されやすくなるため、一部の音声がフィルタリングされる可能性があります。

    これは高度な設定パラメータです。これを調整すると認識結果に大きな影響を与える可能性があります。推奨事項:

    • 調整前に結果を徹底的にテストおよび検証してください。
    • 実際の音声環境に基づいて小幅に調整します(0.1 のステップを推奨)。

    nls_config.special_word_filter

    object

    いいえ

    音声認識中に処理するセンシティブワードを指定し、異なるセンシティブワードに対して異なる処理方法を設定することをサポートします。詳細については、「センシティブワードフィルタリング」を参照してください。

    nls_config.enable_connection_fast_check

    boolean

    いいえ

    ネットワーク障害を迅速に検出し、できるだけ早く報告するかどうかです。デフォルト: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_mode

    VadMode

    VAD モード。VadMode.TYPE_P2T に固定されています。

    dialog_params

    String

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