Skip to main content

非リアルタイム音声認識 (Qwen-Audio-ASR) Android SDK

Qwen-Audio-ASR 非リアルタイム音声認識 Android SDK は、音声をテキストに変換します。

サポートされているオーディオ形式、ファイルサイズ制限、再生時間制限、その他の入力要件については、オーディオ仕様を参照してください。

クイックスタート

  1. APIキーの取得: APIキーの取得。セキュリティのため、APIキーは環境変数に設定することをお勧めします。
  2. SDKをダウンロードしてサンプルコードを実行します:
    • 最新のSDKバンドルのダウンロード。
    • ZIPアーカイブを抽出します。app/libsからAAR形式のSDKを取得し、プロジェクトの依存関係に追加します。 Android CPP統合の場合は、ZIPアーカイブ内のandroid_libsとandroid_includeを使用して、動的ライブラリとヘッダーファイルを取得します。
    • Android Studioでプロジェクトを開きます。サンプルコードはDashFunAsrFlashFileTranscriberActivity.javaにあります。APIキーを置き換えて、機能を試してください。

呼び出し手順

同期モード

  1. SDKを初期化する
  2. ビジネス要件に基づいてパラメータを設定する
  3. startFileTranscriberを呼び出して非リアルタイム音声認識リクエストを送信し、結果を待機する
  4. onFileTransEventCallbackを使用してEVENT_FILE_TRANS_RESULTイベントをリッスンし、最終的な認識結果を取得する
  5. releaseを呼び出してSDKリソースを解放する

リクエストパラメータ

接続および制御パラメータ

これらの設定を構成するには、initializeメソッドのparametersパラメータにJSON文字列を渡します。 パラメータ例:以下のJSON文字列は例であり、すべてのパラメータをリストしているわけではありません。必要に応じてコードにパラメータを追加してください。
{
    "url": "wss://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation",
    "apikey": "st-****",
    "device_id": "my_device_id",
    "service_mode": "1"
}
パラメータ
パラメータ型必須説明
urlStringはいサービスエンドポイント:
  • wss://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
  • 中国(北京):wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
  • シンガポール: wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
を置き換えます {WorkspaceId} を実際の ワークスペースID.
apikeyStringはいAPIキー。
service_modeStringはい動作モード。非リアルタイム音声認識の場合、このパラメータを"1"に設定します。
device_idStringはいエンドユーザーを識別する一意の文字列。アプリ内ユーザーIDまたはクライアント生成の一意のデバイス識別子を使用できます。このIDは主にログのトレースとトラブルシューティングに使用されます。
debug_pathStringいいえログファイルのパス。このパラメータは、save_log を true に設定して initialize を呼び出した場合にのみ有効になります。この場合、ログファイルのパスを指定する必要があります。指定しない場合、エラーが発生します。ローカルには最大2つのログファイルが保持されます。
max_log_file_sizeintいいえ最大ログファイルサイズ(バイト単位)。このパラメータは、save_logをtrueに設定してinitializeを呼び出した場合にのみ有効になります。デフォルト:104857600(100 * 1024 * 1024バイト、または100 MiB)。
log_track_levelintいいえログコールバック (onFileTransLogTrackCallback) を介して送信されるログのフィルタリングレベル。デフォルト: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) のみが配信されます。

認識パラメータ

すべての認識パラメータを設定するには、startFileTranscriberを使用します。 パラメータ例:以下のJSON文字列は例であり、すべてのパラメータをリストしているわけではありません。必要に応じてコードにパラメータを追加してください。
{
  "apikey": "st-****",
  "messages": [
    {
      "content": [
        {
          "input_audio": {
            "data": "{YOUR_AUDIO_URL}"
          },
          "type": "input_audio"
        }
      ],
      "role": "user"
    }
  ],
  "nls_config": {
    "format": "mp3",
    "model": "qwen-audio-3.0-asr-flash"
  }
}
パラメータ
パラメータ型必須説明
apikeystringいいえ接続と制御のパラメータ apikeyで一時的なAPIキーを使用している場合、有効期限切れを防ぐためにここで更新できます。
nls_configobjectはい認識を制御するモデルとパラメータを含む、コア音声認識設定オブジェクト。
nls_config.modelstringはいモデル名。
nls_config.formatstringはい音声形式。このパラメータを実際の形式に設定します。サポートされている形式には、wav、mp3、opusが含まれます。詳細については、音声仕様を参照してください。
nls_config.sample_ratestringいいえ音声のサンプルレート(Hz単位)。たとえば、16000は16 kHzのサンプルレートを示します。詳細については、音声仕様を参照してください。
nls_config.vocabulary_idstringいいえ事前コンパイルされた語彙のID。事前に語彙を作成し、認識時にそのIDを渡してホットワードを使用します。語彙が既知で、比較的安定しており、リクエスト間で再利用される場合にこのオプションを使用します。使用方法については、事前コンパイル済みホットワードを参照してください。
nls_config.instant_vocabularyobjectいいえインスタントホットワード。キーと値のペアを渡します。キーはホットワードのテキスト (string) で、値はその重み (integer) です。事前に語彙を作成する必要はありません。有効な重みは [1, 5] または 50 です。[1, 5] の範囲内では、重みが高いほどモデルがその単語を出力する可能性が高くなります。重み 50 はスーパーホットワードを指定し、再現率を大幅に向上させます。スーパーホットワードは最大 50 個まで指定できます。一時的なセッションレベルのホットワード最適化にはこのオプションを使用します。インスタントホットワードと事前コンパイル済みホットワードの両方が設定されている場合、システムはそれらをマージします。マージされたリストが 2000 エントリを超える場合、2000 エントリがランダムに選択されます。使用方法については、インスタントホットワードを参照してください。
{
  "张三": 5,
  "李四": 5
}
nls_config.language_hintsarray[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: スロバキア語
qwen-audio-3.1-asr-flash は、次の言語コードもサポートします。
  • tr: トルコ語
  • fa: ペルシア語
  • mr: マラーティー語
  • ml: マラヤーラム語
  • ne: ネパール語
  • ky: キルギス語
  • az: アゼルバイジャン語
  • ka: ジョージア語
  • hy: アルメニア語
  • sl: スロベニア語
  • sq: アルバニア語
  • et: エストニア語
  • lv: ラトビア語
  • lt: リトアニア語
  • ca: カタロニア語
  • eu: バスク語
  • gl: ガリシア語
  • or: オディア語
  • dv: ディベヒ語
  • as: アッサム語
  • ku: クルド語
  • tig: ティグレ語
  • fy: 西フリジア語
  • ba: バシキール語
  • be: ベラルーシ語
  • tt: タタール語
  • ia: インターリングア
  • mhr: 東マリ語
  • tok: トキポナ語
messagesarray[object]はいメッセージのリスト。認識する音声と、認識精度を向上させるためのオプションの会話コンテキストが含まれています。以下の説明を参照してください。
messagesパラメータ:
コンテキストは専門用語の認識精度を向上させます。使用方法については、コンテキスト強化を参照してください。制約事項:コンテキストメッセージ (input_text および text タイプ) はそれぞれ5つまでに制限されています。制限を超えた場合、最新の5つのメッセージのみが保持されます。ターンごとのコンテキストテキストの合計長 (user フィールドと assistant text フィールドの長さの合計) は 400 文字を超えてはなりません。各文字は1文字としてカウントされます。超過した文字は末尾から切り捨てられます。
コンテキストが含まれる場合、messages メッセージは特定の順序に従う必要があります。コンテキストメッセージは会話のターンごとに配置します。各ターン内で、user (input_text タイプ) は対応する assistant (text タイプ) の前に配置する必要があります。入力オーディオを含む input_audio user メッセージは、messages の最後に配置する必要があります。
パラメータ型必須説明
rolestringはいメッセージのロール。有効な値:
  • user(必須):ユーザーメッセージ。typeがinput_audioの場合、認識する音声を表します。typeがinput_textの場合、以前のターンからの認識結果またはドメイン固有の語彙(オプションのコンテキスト)を表します。
  • assistant(オプションのコンテキスト):以前のターンからの大規模言語モデルの応答。
contentarray[object]はいメッセージコンテンツのリスト。以下の説明を参照してください。
contentパラメータ:
パラメータ型必須説明
typestringはいコンテンツタイプ。各リクエストには少なくとも1つの input_audio メッセージが必要です。有効な値:
  • input_audio(必須):認識する音声入力(ロールはuser)。input_audioオブジェクトも指定する必要があります。
  • input_text(オプションのコンテキスト):以前のターンからのユーザー発話の認識結果、またはドメイン固有の語彙(ロールはuser)。textフィールドも指定する必要があります。
  • text(オプションのコンテキスト):以前のターンからの大規模言語モデルの応答(ロールはassistant)。textフィールドも指定する必要があります。
input_audioobjectいいえtypeがinput_audioの場合に必須。
input_audio.datastringはい認識するオーディオデータ。サポートされているオーディオ形式、ファイルサイズ制限、再生時間制限、その他の入力要件については、 オーディオ仕様を参照してください。次の2つの入力方法がサポートされています:
  • 音声ファイルURL:公開アクセス可能な音声ファイルURLを渡します。
  • Base64 Data URI:Base64エンコードされた音声をData URIとして渡します。data:{MIME_TYPE};base64,プレフィックスとBase64エンコードされた音声データを連結します。サポートされているMIMEタイプには、audio/wav、audio/mp3が含まれます。
例 (URL): https://example.com/audio/sample.wav例 (Base64): data:audio/wav;base64,{BASE64_ENCODED_DATA}
textstringいいえtype が input_text の場合は必須で、前のターンのユーザー発話の認識結果またはドメイン固有の語彙を指定します。type が text の場合は、前のターンの大規模言語モデルの応答を指定します。テキスト長は文字数でカウントされ、各文字は1文字としてカウントされます。各コンテキストターンにおけるすべてのメッセージの text フィールドの合計長は 400 文字を超えてはなりません。超過した文字は末尾から切り捨てられます。

主要インターフェース

NativeNui

initialize

音声認識SDKインスタンスを初期化します。SDKはシングルトンを使用します。releaseを呼び出す前に再度初期化しないでください。 このメソッドはブロックされます。非UIスレッドから呼び出してください。 メソッドシグネチャ
public synchronized int initialize(final INativeFileTransCallback callback,
                                   String parameters,
                                   final Constants.LogLevel level,
                                   final boolean save_log)
パラメータ
パラメータ型説明
callbackINativeFileTransCallbackイベントおよびデータコールバックインターフェースの実装。
parametersString認証、接続、およびデバッグパラメータを含むJSON文字列。接続と制御のパラメータを参照してください。
levelConstants.LogLevelSDKによって出力されるログのレベル。
save_logbooleanログをローカルに保存するかどうか。trueに設定した場合、接続と制御のパラメータを使用してdebug_pathを設定してパスを指定し、max_log_file_sizeを使用してファイルサイズを設定します。

setParams

このメソッドを使用して、nls_configを個別に設定または更新します。すべてのパラメータが1回の呼び出しでstartFileTranscriberに指定されている場合、このメソッドを呼び出す必要はありません。 メソッドシグネチャ
public synchronized int setParams(String params);
パラメータ
パラメータ型説明
paramsStringnls_config内の認識パラメータおよびmessagesパラメータ。例:
{
  "messages": [
    {
      "content": [
        {
          "input_audio": {
            "data": "{YOUR_AUDIO_URL}"
          },
          "type": "input_audio"
        }
      ],
      "role": "user"
    }
  ],
  "nls_config": {
    "format": "mp3",
    "model": "qwen-audio-3.0-asr-flash"
  }
}

startFileTranscriber

認識を開始します。 メソッドシグネチャ
public synchronized int startFileTranscriber(String params, byte[ ] task_id)
パラメータ
パラメータ型説明
paramsString認識パラメータ。例:
{
  "apikey": "st-****",
  "messages": [
    {
      "content": [
        {
          "input_audio": {
            "data": "{YOUR_AUDIO_URL}"
          },
          "type": "input_audio"
        }
      ],
      "role": "user"
    }
  ],
  "nls_config": {
    "format": "mp3",
    "model": "qwen-audio-3.0-asr-flash"
  }
}
task_idbyte[ ]このパラメータは無視してnullを渡すことができます。

queryFileTranscriber

この非リアルタイム音声認識機能は同期リクエストのみをサポートしています。このメソッドは無視できます。

cancelFileTranscriber

現在のタスクを即座にキャンセルします。 メソッドシグネチャ
public synchronized int cancelFileTranscriber(String task_id)
パラメータ
パラメータ型説明
task_idStringEVENT_FILE_TRANS_UPLOADEDから取得した、キャンセルするタスクのID。

release

すべての内部SDKリソースを解放します。この呼び出しの後、SDKインスタンスは使用できなくなります。再度使用するには、initializeを呼び出して再度初期化してください。 メソッドシグネチャ
public synchronized int release();

GetVersion

現在のSDKバージョンを取得します。 メソッドシグネチャ
public synchronized String GetVersion();
戻り値 現在の SDK バージョン。

INativeFileTransCallback:コールバック

onFileTransEventCallback:イベントと認識結果をリッスンする

メソッドシグネチャ
void onFileTransEventCallback(NuiEvent event, final int resultCode, final int arg2, AsrResult asrResult, String taskId);
パラメータ
パラメータ型説明
eventNuiEventコールバックイベント。
resultCodeintEVENT_ASR_ERROR イベントが発生した場合にのみ有効です。
asrResultAsrResult音声認識結果。
taskIdStringタスクID。
arg2int予約済み。

onFileTransLogTrackCallback:トレースログをリッスンする

このコールバックは、トラブルシューティングとデバッグのために詳細な内部SDKログを受信します。
default void onFileTransLogTrackCallback(Constants.LogLevel level, String log)

イベントタイプ

イベント説明
EVENT_FILE_TRANS_CONNECTEDサービスに正常に接続しました。
EVENT_FILE_TRANS_UPLOADED音声ファイルが正常にアップロードされました。この時点で現在のtask_idを取得できます。
EVENT_FILE_TRANS_RESULT最終認識結果。
EVENT_ASR_ERROR音声認識中にエラーが発生しました。