Skip to main content

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

このガイドでは、Qwen-Audio-ASR-Filetrans非リアルタイム音声認識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でサンプルプロジェクトを開きます。サンプルコードはDashFunAsrFileTranscriberViewController.mにあります。API Keyを置き換えて機能を試してください。

呼び出し手順

  • 同期モード
  • 非同期モード
  1. SDKを初期化します。
  2. ユースケースに合わせて関連するパラメータを設定します。
  3. async_requestをfalseに設定し、nui_file_trans_startを呼び出して非リアルタイム音声認識リクエストを送信し、結果を待ちます。
  4. onFileTransEventCallbackコールバックで、EVENT_FILE_TRANS_RESULTイベントをリッスンして最終的な認識結果を取得します。
  5. nui_releaseを呼び出して、SDKリソースを解放します。

リクエストパラメータ

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

これらのパラメータは、nui_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いいえログファイルの保存パス。このパラメータは、nui_initializeインターフェースを呼び出す際にsave_logがYESに設定されている場合にのみ有効になります。その場合、ログファイルパスを設定する必要があります。設定しない場合はエラーが返されます。ローカルには最大2つのログファイルが保持されます。
max_log_file_sizeintいいえログファイルの最大サイズ(バイト単位)。このパラメータは、nui_initializeインターフェースを呼び出す際にsave_logがYESに設定されている場合にのみ有効になります。デフォルト値: 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-****",
    "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: スロバキア語

主要なインターフェース

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

nui_file_trans_start

認識を開始します。 メソッドシグネチャ
-(NuiResultCode) nui_file_trans_start:(const char *)params
                               taskId:(char *)task_id;
パラメータの説明
パラメータ型説明
paramschar*音声認識効果パラメータ。例:
{
    "file_urls": [
        "{YOUR_AUDIO_URL}"
    ],
    "async_request": false,
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}
task_idchar*タスクID。SDKは内部でランダムな文字列を生成し、このインターフェースの呼び出しが成功するとtask_idを返します。

nui_file_trans_query

このインターフェースを使用して、非同期タスクの現在のステータスと結果をアクティブにクエリします。呼び出しが成功すると、onFileTransEventCallbackコールバックのEVENT_FILE_TRANS_QUERY_RESULTイベントを介して結果が返されます。
このメソッドに渡されるtask_idをEVENT_FILE_TRANS_UPLOADEDイベントから取得します。
メソッドシグネチャ
-(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*キャンセルするタスクのID。EVENT_FILE_TRANS_UPLOADEDイベントから取得します。

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_QUERY_RESULTクエリタスクの結果。
EVENT_FILE_TRANS_RESULT最終認識結果。
EVENT_ASR_ERROR音声認識中にエラーが発生しました。