Skip to main content

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

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

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

クイックスタート

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

呼び出し手順

  • 同期モード
  • 非同期モード
  1. SDKを初期化します。
  2. ビジネスに必要なパラメータを設定します。
  3. async_requestをfalseに設定し、startFileTranscriberを呼び出して非リアルタイム音声認識リクエストを送信し、結果を待ちます。
  4. 最終的な認識結果を取得するには、onFileTransEventCallbackインターフェースでEVENT_FILE_TRANS_RESULTイベントをリッスンします。
  5. releaseを呼び出して、SDKリソースを解放します。

リクエストパラメータ

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

これらのパラメータは、initializeインターフェースのparameters引数にJSON文字列を渡すことで設定します。 パラメータの例 以下のJSON文字列は例であり、すべてのパラメータがリストされているわけではありません。コードを記述する際に、必要なパラメータを追加してください。
{
    "url": "wss://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription",
    "apikey": "st-****",
    "device_id": "my_device_id",
    "service_mode": "1"
}
パラメータの説明
パラメータ型必須説明
urlStringはいサービスエンドポイント:
  • wss://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription
  • 中国(北京):wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/asr/transcription
  • シンガポール: wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription
{WorkspaceId}を実際のワークスペースIDに置き換えます。
apikeyStringはいAPIキー。
service_modeStringはい実行モード。録音音声認識では"1"に固定されます。
device_idStringはいエンドユーザーを識別する一意の文字列。アプリ内のユーザーIDまたはクライアントによって生成されたデバイス識別子に設定します。このIDは主にログのトレースとトラブルシューティングに使用されます。
debug_pathStringいいえログファイルの保存パス。このパラメータは、initializeインターフェースでsave_logがtrueに設定されている場合にのみ有効になります。その場合、ログファイルのパスを設定する必要があります。設定しないとエラーが報告されます。ローカルには最大2つのログファイルが保持されます。
max_log_file_sizeintいいえログファイルの最大サイズ(バイト単位)。このパラメータは、initializeインターフェースでsave_logがtrueに設定されている場合にのみ有効になります。デフォルト: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-****",
    "file_urls": [
        "{YOUR_AUDIO_URL}"
    ],
    "async_request": false,
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}
パラメータの説明
パラメータ型必須説明
file_urlsarray[string]はい文字起こしする音声ファイルまたは動画ファイルのURLのリスト。HTTPおよびHTTPSがサポートされています。1つのリクエストでサポートされるURLは1つだけです。サポートされている音声形式、ファイルサイズ制限、再生時間制限などの入力要件については、音声の仕様を参照してください。録音がAlibaba Cloud OSSに保存されている場合、RESTful APIはoss://プレフィックス付きの一時的なURLをサポートしますが、SDKはoss://プレフィックス付きの一時的なURLをサポートしていません。
  • 一時的なURLは48時間有効であり、有効期限が切れた後は使用できません。本番環境では使用しないでください。
  • アップロード認証情報インターフェースは、100 QPSにレート制限されており、スケールアップできません。本番環境、高同時実行、または負荷テストのシナリオでは使用しないでください。
  • 本番環境では、Alibaba Cloud OSSなどの安定したストレージを使用して、ファイルを長期的に利用可能にし、レート制限を回避してください。
  • OSSの一時的な公開URLに設定された音声ファイルのURLにアクセスできない場合は、リクエストヘッダーでX-DashScope-OssResourceResolveをenableに設定します(推奨されません)。 SDKはリクエストヘッダーの設定をサポートしていません。
async_requestbooleanいいえ認識リクエストが非同期かどうか。デフォルト:false。有効な値:
  • true:非同期リクエスト
  • false:同期リクエスト
apikeystringいいえ接続と制御のパラメータのapikeyが一時的なAPIキーである場合、有効期限切れを回避するためにここで更新できます。
nls_configobjectはい音声認識のコア設定オブジェクト。モデル選択や認識制御などの主要なパラメータが含まれています。
nls_config.modelstringはいモデル名。
nls_config.special_word_filterobjectいいえ音声認識中に処理するセンシティブワード。センシティブワードごとに異なる処理方法を設定できます。詳細については、センシティブワードのフィルタリングを参照してください。
nls_config.channel_idarray[integer]いいえマルチトラック音声ファイルで認識する音声トラックのインデックス。インデックスは0から始まります。たとえば、[0]は最初のトラックを認識し、[0, 1]は1番目と2番目のトラックを同時に認識します。このパラメータを省略すると、最初のトラックのみが処理されます。
指定された各トラックは個別に課金されます。たとえば、1つのファイルに対して[0, 1]をリクエストすると、2つの別々の料金が発生します。
デフォルト値:[0]。
nls_config.diarization_enabledbooleanいいえ話者分離を有効にするかどうか。デフォルトでは無効です。モノラル音声にのみ適用されます。マルチチャンネル音声は話者分離をサポートしていません。有効にすると、認識結果に異なる話者を識別するspeaker_idフィールドが含まれます。
話者分離が有効な場合、音声の長さを2時間以内に抑えてください。そうしないと、認識が失敗したりタイムアウトしたりする可能性があります。
デフォルト:false。speaker_idの例については、認識結果の説明を参照してください。
nls_config.speaker_countintegerいいえ
話者分離が有効な場合(diarization_enabledがtrueに設定されている場合)にのみ有効になります。
話者数の参照値。有効範囲は2から100までの整数(両端を含む)です。デフォルトでは、話者数は自動的に検出されます。この値を設定すると、可能な場合に指定された数を出力するようにアルゴリズムを誘導するだけであり、その正確な数を保証するものではありません。デフォルト値はありません。
nls_config.vocabulary_idstringいいえ事前コンパイルされたホットワードリストのID。ホットワードリスト作成APIを呼び出して、このIDを事前に生成します。リスト内のホットワードを使用するには、認識中にこのIDを渡します。語彙が既知で比較的安定しており、リクエスト間で同じワードリストを再利用する必要があるシナリオに適しています。使用方法の詳細については、「事前コンパイルされたホットワード」を参照してください。
nls_config.input_contextarrayいいえ認識精度を向上させるためのオプションの会話コンテキストを含むメッセージのリスト。
コンテキストは、ドメイン固有の用語の認識を向上させるのに役立ちます。使用方法については、コンテキストの強化を参照してください。各コンテキストタイプ(input_textとtext)のメッセージは、最大5つまで含めることができます。この制限を超えた場合、各タイプの最新の5つのメッセージのみが保持されます。各ターンのuserメッセージとassistantメッセージのtextフィールドの合計文字数は、400文字を超えてはなりません。各文字は1としてカウントされます。超過したテキストは末尾から切り捨てられます。
コンテキストを含める場合は、会話のターンごとにmessagesを配置します。各ターンで、userメッセージ(input_textタイプ)は、対応するassistantメッセージ(textタイプ)より前に配置する必要があります。input_audioを含むuserメッセージは、messages配列の最後のメッセージである必要があります。
[
  {
    "role": "user",
    "content": [
      {
        "type": "input_text",
        "text": "你好啊,我是通义千问,有什么可以帮助你的?"
      }
    ]
  }
]
nls_config.instant_vocabularyobjectいいえキーと値のペアとして渡されるインスタントホットワード。各キーはホットワードのテキスト(string)で、各値はその重み(integer)です。事前コンパイルされたホットワードリストは不要です。一時的なセッションレベルのホットワードにはこのパラメータを使用します。有効な重みは、1から5までの整数、または50です。1から5のより高い重みは、モデルがホットワードを出力する可能性を高めます。50の重みはスーパーホットワードを定義し、再現率を大幅に向上させます。スーパーホットワードは最大50つまで指定できます。事前コンパイルされたホットワードも設定する場合、2つのセットはマージされます。マージされたセットが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: スロバキア語

主要なインターフェース

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パラメータを個別に設定または更新します。startFileTranscriberですべてのパラメータを一度に指定する場合は、このメソッドを呼び出す必要はありません。 メソッドシグネチャ
public synchronized int setParams(String params);
パラメータの説明
パラメータ型説明
paramsString音声認識パラメータのnls_configパラメータ。nls_config以外のパラメータは、このメソッドでは設定できません。例:
{
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}

startFileTranscriber

認識を開始します。 メソッドシグネチャ
public synchronized int startFileTranscriber(String params, byte[] task_id)
パラメータの説明
パラメータ型説明
paramsString音声認識パラメータ。例:
{
    "file_urls": [
        "{YOUR_AUDIO_URL}"
    ],
    "async_request": false,
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}
task_idbyte[]タスクID。SDKは内部でランダムな文字列を生成します。このインターフェースが正常に返された後、task_idを取得します。

queryFileTranscriber

このインターフェースを使用して、非同期タスクの現在のステータスと結果をクエリします。呼び出しが成功すると、結果はonFileTransEventCallbackコールバックのEVENT_FILE_TRANS_QUERY_RESULTイベントを通じて返されます。
このメソッドに渡されるtask_idをEVENT_FILE_TRANS_UPLOADEDイベントから取得します。
メソッドシグネチャ
public synchronized int queryFileTranscriber(String task_id)
パラメータの説明
パラメータ型説明
task_idStringクエリ対象のタスクのID。EVENT_FILE_TRANS_UPLOADEDイベントから取得します。

cancelFileTranscriber

現在のタスクを直ちにキャンセルします。 メソッドシグネチャ
public synchronized int cancelFileTranscriber(String task_id)
パラメータの説明
パラメータ型説明
task_idStringキャンセルするタスクのID。EVENT_FILE_TRANS_UPLOADEDイベントから取得します。

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)

NuiEvent: イベントタイプ

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