Skip to main content

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

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

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

クイックスタート

  1. API キーの取得: API キーの取得
  2. SDKをダウンロードしてサンプルコードを実行します:
    • 最新のSDKバンドルのダウンロード。
    • ZIP アーカイブを抽出し、nuisdk.framework をプロジェクトに追加します。
    • Build Phases → Link Binary With Libraries に nuisdk.xcframework を追加します。
    • [General] → [Frameworks, Libraries, and Embedded Content] で、nuisdk.xcframework を [Embed & Sign] に設定します。
    • Xcode でサンプルプロジェクトを開きます。サンプルコードは DashFunAsrFlashFileTranscriberViewController.m にあります。API キーを置き換えて機能を試してください。

呼び出し手順

同期モード

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

リクエストパラメータ

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

これらの設定を構成するには、JSON 文字列を nui_initialize メソッドの parameters パラメータに渡します。 パラメータ例:以下の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 を YES に設定して nui_initialize を呼び出した場合にのみ有効になります。この場合、ログファイルのパスを指定する必要があります。指定しない場合、エラーが発生します。ローカルには最大 2 つのログファイルが保持されます。
max_log_file_sizeintいいえログファイルの最大サイズ(バイト単位)。このパラメータは、save_log を YES に設定して nui_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(nui_initialize メソッドで設定)が共同で配信されるログを決定します。ログが配信されるには、ログの数値レベルが log_track_level と level の両方以上である必要があります。たとえば、log_track_level が 2(INFO)に設定され、level が 3(WARNING)に設定されている場合、WARNING 以上の重大度のログ(数値レベル >= 3)のみが配信されます。

認識パラメータ

nui_file_trans_start を使用してすべての認識パラメータを構成します。 パラメータ例:以下の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 文字を超えてはなりません。超過した文字は末尾から切り捨てられます。

主要インターフェース

NeoNui

nui_initialize

音声認識 SDK インスタンスを初期化します。SDK はシングルトンを使用します。 nui_release を呼び出す前に再度初期化しないでください。 メソッドシグネチャ
- (NuiResultCode) nui_initialize:(const char *)parameters
                       logLevel:(NuiSdkLogLevel)level
                        saveLog:(BOOL)save_log;
パラメータ
パラメータ型説明
parameterschar*認証、接続、およびデバッグパラメータを含むJSON文字列。接続と制御のパラメータを参照してください。
levelNuiSdkLogLevelSDKによって出力されるログのレベル。
save_logBOOLログをローカルに保存するかどうか。YESに設定した場合、接続と制御のパラメータを使用してdebug_pathを設定してパスを指定し、max_log_file_sizeを使用してファイルサイズを設定します。

nui_set_params

このメソッドを使用して、 nls_config を個別に設定または更新します。すべてのパラメータが1回の呼び出しで nui_file_trans_start に指定されている場合、このメソッドを呼び出す必要はありません。 メソッドシグネチャ
- (NuiResultCode) nui_set_params:(const char *)params;
パラメータ
パラメータ型説明
paramschar*nls_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"
  }
}

nui_file_trans_start

認識を開始します。 メソッドシグネチャ
- (NuiResultCode) nui_file_trans_start:(const char *)params
                             taskId:(char *)task_id;
パラメータ
パラメータ型説明
paramschar*認識パラメータ。例:
{
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_audio",
          "input_audio": {
            "data": "{YOUR_AUDIO_URL}"
          }
        }
      ]
    }
  ],
  "nls_config": {
    "format": "mp3",
    "model": "qwen-audio-3.0-asr-flash"
  }
}
task_idchar*このパラメータは無視してnullを渡すことができます。

nui_file_trans_query

この非リアルタイム音声認識機能は同期リクエストのみをサポートしています。このメソッドは無視できます。 メソッドシグネチャ
- (NuiResultCode) nui_file_trans_query:(const char *)task_id;
パラメータ
パラメータ型説明
task_idchar*クエリを実行するタスクの ID。EVENT_FILE_TRANS_UPLOADED から取得します。

nui_file_trans_cancel

現在のタスクを即座にキャンセルします。 メソッドシグネチャ
- (NuiResultCode) nui_file_trans_cancel:(const char *)task_id;
パラメータ
パラメータ型説明
task_idchar*EVENT_FILE_TRANS_UPLOADEDから取得した、キャンセルするタスクのID。

nui_release

内部 SDK リソースをすべて解放し、進行中のすべてのタスクを強制的に停止します。この呼び出しの後、SDK インスタンスは使用できなくなります。再度使用するには、nui_initialize を呼び出して再初期化してください。 メソッドシグネチャ
- (NuiResultCode) nui_release;

nui_get_version

現在のSDKバージョンを取得します。 メソッドシグネチャ
- (const char*) nui_get_version;
戻り値 現在の SDK バージョン。

NeoNuiSdkDelegate:コールバック

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

メソッドシグネチャ
- (void) onFileTransEventCallback:(NuiCallbackEvent)nuiEvent
                       asrResult:(const char *)asr_result
                          taskId:(const char *)task_id
                        ifFinish:(BOOL)finish
                         retCode:(int)code;
パラメータ
パラメータ型説明
nuiEventNuiCallbackEventコールバックイベント。
asr_resultchar*音声認識結果。
task_idchar*タスクID。
finishBOOLこのターンの認識が完了したかどうか。
codeintEVENT_ASR_ERROR イベントが発生した場合にのみ有効です。

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

このコールバックは、トラブルシューティングとデバッグのために詳細な内部SDKログを受信します。
- (void)onFileTransLogTrackCallback:(NuiSdkLogLevel)level
                        logMessage:(const char *)log;

NuiCallbackEvent:イベントタイプ

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