Qwen-Audio-ASR-Message の iOS SDK のパラメーター、インターフェイス、コールバックと使用方法を説明します。
クイックスタート
-
API キーを取得: API キーを取得
-
SDK をダウンロードしてサンプルコードを実行:
- 最新の SDK パッケージをダウンロード。
- ZIP パッケージを展開し、同梱の
nuisdk.xcframeworkをプロジェクトに追加します。 - Build Phases → Link Binary With Libraries に
nuisdk.xcframeworkを追加します。 - General → Frameworks, Libraries, and Embedded Content で、
nuisdk.xcframeworkを Embed & Sign に設定します。 - Xcode でサンプルプロジェクトを開きます。サンプルコードは
DashFunAsrSpeechTranscriberViewController.mにあります。API キーを自分のキーに置き換えて機能を試します。
呼び出し手順
- SDK を初期化します。
- 用途に応じてパラメーターを設定します。
nui_initializeで接続・制御パラメーターを、nui_set_paramsで認識品質パラメーターを設定します。 nui_dialog_startを呼び出して認識を開始します。onNuiAudioStateChangedコールバックで、音声の状態に応じて録音デバイスを開きます。onNuiNeedAudioDataコールバックで録音データを継続的に供給するか、nui_update_audio_dataを呼び出して能動的に送信します。onNuiEventCallbackでイベントを監視し、音声認識結果を取得します。nui_dialog_cancelを呼び出して認識を停止し、EVENT_TRANSCRIBER_COMPLETEイベントで終了を確認します。- 認識機能が不要になったら、
nui_releaseを呼び出して SDK リソースを解放します。
リクエストパラメーター
接続・制御パラメーター
nui_initialize の parameters 引数に JSON 文字列を渡して設定します。
パラメーターの例: 以下の JSON 文字列は例であり、すべてのパラメーターを網羅していません。コードを書く際に必要なパラメーターを追加してください。
{
"url": "wss://dashscope.aliyuncs.com/api-ws/v1/inference",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
パラメーターの説明
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
url | String | はい | サービスアドレス:
{WorkspaceId} を実際の ワークスペースID に置き換えます。 |
apikey | String | はい | API キー。 |
service_mode | String | はい | 動作モード。リアルタイム音声認識では "1" に固定します。 |
device_id | String | はい | エンドユーザーを識別する一意の文字列。アプリ内のユーザー ID、またはクライアントで生成したデバイス識別子を指定できます。主にログの追跡と問題の調査に使用します。 |
| String | いいえ | 音声データの能動的な送信を有効にするかどうか。デフォルトは "false" です。"true" に設定し、SDK バージョンが AEC や VAD などのデバイス側音声処理をサポートする場合、これらの機能はデフォルトで有効になります。 |
| String | いいえ | オンデバイスリソースファイルが保存されているパスです。このパラメータは、audio_update_manually が "true" に設定されており、AECやVADなどのオンデバイス音声処理機能が有効な場合に必須です。 |
debug_path | String | いいえ | ログファイルの保存先。nui_initialize の save_log が YES の場合のみ有効です。この場合、保存先の設定は必須で、未設定だとエラーになります。ローカルには最大 2 個のログファイルを保持します。 |
save_wav | String | いいえ | デバッグ用音声を保存するかどうか。保存先は debug_path です。デフォルトは "false"。"true" は保存、"false" は保存しません。nui_initialize で save_log を true にした場合のみ有効で、debug_path の設定も必要です。 |
max_log_file_size | int | いいえ | ログファイルの最大サイズ(バイト)。nui_initialize の save_log が YES の場合のみ有効です。デフォルトは 104857600(100 × 1024 × 1024 バイト、100 MiB)です。 |
log_track_level | int | いいえ | 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 と nui_initialize で指定した level の両方以上の場合のみ返されます。例えば 2(INFO)と 3(WARNING)なら、WARNING 以上(値が 3 以上)のログだけを返します。 |
認識品質パラメーター
nui_set_params の params 引数に JSON 文字列を渡して設定します。
パラメーターの例: 以下の JSON 文字列は例であり、すべてのパラメーターを網羅していません。コードを書く際に必要なパラメーターを追加してください。
{
"service_type": 4,
"nls_config": {
"model": "qwen-audio-3.1-asr-flash-message",
"sr_format": "pcm",
"sample_rate": "16000"
}
}
パラメーターの説明
| 最上位パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
service_type | int | はい | 音声サービスの種類。リアルタイム音声認識では 4 に固定します。 |
nls_config | object | はい | 認識の主要な設定オブジェクト。モデル選択や認識品質の制御などのパラメーターを含みます。 |
nls_config.model | string | はい | モデル名。qwen-audio-3.1-asr-flash-message に設定します。 |
nls_config.sr_format | string | はい | 音声形式。 有効な値:
重要PCM 音声データを渡し、このパラメーターを |
nls_config.sample_rate | int | はい | サンプリングレート(Hz)。 |
nls_config.max_sentence_silence | int | いいえ | VAD の文分割の無音しきい値(ミリ秒)。発話後の無音時間がこの値を超えると、文の終了と判断します。デフォルト: |
nls_config.heartbeat | boolean | いいえ | ハートビートパケットを有効にするかどうか。 デフォルト値:false。
無音音声とは、オーディオファイルまたはデータストリーム内で音声信号を含まないコンテンツを指します。AudacityやAdobe Auditionなどのオーディオ編集ソフトウェアを使用するか、FFmpegなどのコマンドラインツールを使用して、無音音声を生成できます。 |
nls_config.disfluency_removal_enabled | boolean | いいえ | つなぎ言葉を除去し、出力を整えるかどうか。デフォルト値は false です。有効にするには true に設定します。 |
nls_config.intermediate_result_enabled | boolean | いいえ | ストリーミング認識の中間結果を返すかどうか。デフォルト値は false です。中間結果を返すには true に設定します。 |
nls_config.vocabulary_id | string | いいえ | 事前コンパイルされたホットワードリストのID。 ホットワードリスト作成APIを呼び出して、このIDを事前に生成します。リスト内のホットワードを使用するには、認識中にこのIDを渡します。 語彙が既知で比較的安定しており、リクエスト間で同じワードリストを再利用する必要があるシナリオに適しています。 使用方法の詳細については、「事前コンパイルされたホットワード」を参照してください。 |
nls_config.instant_vocabulary | object | いいえ | 即時ホットワード。 キーと値のペアとして渡されます。キーはホットワードテキスト( 一時的なセッションレベルのホットワード最適化に適しています。 即時ホットワードと事前コンパイル済みホットワードが一緒に設定されている場合、システムは両方のセットをマージします。マージされたセットに 2000 個を超えるホットワードが含まれる場合、システムはランダムに 2000 個を選択して使用します。使用法の詳細については、「即時ホットワード」を参照してください。 重要即時ホットワードに適用されるモデルと制限については、「即時ホットワード」を参照してください。 |
| float | いいえ | 音声とノイズを区別するための閾値で、Voice Activity Detection(VAD)の感度を調整するために使用されます。 有効な値:[-1.0, 1.0]。 値の説明:
これは高度な設定パラメータです。これを調整すると認識結果に大きな影響を与える可能性があります。推奨事項:
|
| BOOL | いいえ | 切断をできるだけ早く報告するため、高速ネットワークチェックを有効にするかどうか。デフォルトは NO です。 |
主要 API
NeoNui
nui_initialize
音声認識 SDK インスタンスを初期化します。SDK はシングルトンです。nui_release を呼ぶ前に再初期化しないでください。
-(NuiResultCode) nui_initialize:(const char *)parameters
logLevel:(NuiSdkLogLevel)level
saveLog:(BOOL)save_log;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
parameters | char* | 認証、接続、およびデバッグパラメータを含むJSON文字列。接続および制御パラメータを参照してください。 |
level | NuiSdkLogLevel | SDK 独自のログの出力レベル。 |
save_log | BOOL | ローカルにログを保存するかどうか。YESに設定した場合、接続および制御パラメータのdebug_pathでパスを指定し、必要に応じてmax_log_file_sizeでファイルサイズを設定します。 |
エラーコードを返します。「エラーコード」を参照してください。
nui_set_params
認識品質パラメーターを JSON 形式で設定します。nui_dialog_start の前に呼び出します。
-(NuiResultCode) nui_set_params:(const char *)params;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
params | char* | 認識品質パラメーター。 |
エラーコードを返します。「エラーコード」を参照してください。
nui_dialog_start
認識を開始します。
Method signature-(NuiResultCode) nui_dialog_start:(NuiVadMode)vad_mode
dialogParam:(const char *)dialog_params;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
vad_mode |
| VADモード。 |
dialog_params | char* | 接続・制御パラメーターの 内容は JSON 形式です。 |
エラーコードを返します。「エラーコード」を参照してください。
nui_dialog_cancel
認識を終了するか、現在の対話を直ちにキャンセルします。
Method signature-(NuiResultCode) nui_dialog_cancel:(BOOL)force;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
force | BOOL | 強制終了して最終結果を破棄するかどうか。YES:サーバーの最終認識結果を待たずに直ちに終了します。NO:タスクを終了し、完全な結果が返るまで待ちます。 |
エラーコードを返します。「エラーコード」を参照してください。
nui_dialog_action
対話中にアクションを送信し、認識コンテキストやその他の実行時動作を更新します。
Method signature-(NuiResultCode) nui_dialog_action:(const char *)action_params;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
action_params | char* | 認識コンテキストやその他の実行時動作を更新する JSON 文字列。 |
action_params.type | String | "action" に固定します。 |
action_params.command | String | 実行時コマンド。context:コンテキスト拡張を直ちに更新して認識精度を高めます。play_start:デバイス側 AEC 使用時に、音声再生の開始を内部 AEC プレーヤーへ通知します。play_over:デバイス側 AEC 使用時に、再生の終了を通知します。 |
action_params.context | String |
|
エラーコードを返します。「エラーコード」を参照してください。
nui_update_audio_data
audio_update_manually が "true" の場合、onNuiNeedAudioData で録音データを供給せず、このメソッドで能動的に送信します。
-(NuiResultCode) nui_update_audio_data:(const char *)data
Len:(int)length
FirstPack:(BOOL)first_pack;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
| const char * | プッシュするオーディオデータ。 |
length | int | 音声データの長さ (バイト単位)。 |
| BOOL | このパラメータを使用する必要はありません。 |
エラーコードを返します。「エラーコード」を参照してください。
nui_push_reference_data
audio_update_manually が "true" でデバイス側 AEC が有効な場合、このメソッドでプレーヤーの再生音声を参照信号として送信します。
-(NuiResultCode) nui_push_reference_data:(const char *)data
Len:(int)length
FirstPack:(BOOL)first_pack;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
| const char * | プッシュするオーディオデータ。 |
length | int | 音声データの長さ (バイト単位)。 |
| BOOL | このパラメータを使用する必要はありません。 |
エラーコードを返します。「エラーコード」を参照してください。
nui_release
SDK の内部リソースをすべて解放し、実行中のタスクをすべて強制終了します。呼び出し後はインスタンスを使用できません。再使用するには、nui_initialize で再初期化します。
-(NuiResultCode) nui_release;
Return value
エラーコードを返します。「エラーコード」を参照してください。
nui_get_version
現在の SDK バージョンを取得します。nui_initialize の呼び出し後のみ値を返します。
-(const char*) nui_get_version;
Return value
現在の SDK バージョン。
nui_get_all_response
現在のイベントコールバックの完全な情報を取得します。
Method signature-(const char*) nui_get_all_response;
Return value
JSON 文字列形式の完全なイベント情報。
NeoNuiSdkDelegate:コールバックリスナー
onNuiEventCallback:イベントと音声認識結果の受信
Method signature-(void) onNuiEventCallback:(NuiCallbackEvent)nuiEvent
dialog:(long)dialog
kwsResult:(const char *)wuw
asrResult:(const char *)asr_result
ifFinish:(BOOL)finish
retCode:(int)code;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
nuiEvent | NuiCallbackEvent | コールバックイベント。 |
dialog | long | セッション ID。このパラメータを使用する必要はありません。 |
wuw | char* | 音声ウェイクアップ。このパラメータを使用する必要はありません。 |
asr_result | char* | 音声認識結果。 |
finish | BOOL | 現在の認識ラウンドが終了したかどうか。 |
code | int | エラーコード。EVENT_ASR_ERROR イベント発生時に有効です。「エラーコード」を参照してください。 |
onNuiAudioStateChanged:音声状態の監視
SDK はこのコールバックで録音の開始・停止タイミングを通知します。
Method signature-(void) onNuiAudioStateChanged:(NuiAudioState)state;
NuiAudioState states
| パラメーター | 説明 |
|---|---|
STATE_OPEN | インタラクションが開始されました。録音デバイスを開いて録音を開始できます。 |
STATE_PAUSE | インタラクションが停止しました。録音を停止できます。 |
STATE_CLOSE | SDK インスタンスがリリースされました。録音デバイスを完全に閉じることができます。 |
onNuiNeedAudioData:認識用音声データの供給
認識開始後、このコールバックは継続的に呼ばれます。認識する音声データをここで供給します。
Method signature-(int) onNuiNeedAudioData:(char *)audioData length:(int)len;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
audioData | char* | 供給する音声データ。 |
len | int | 供給する音声データのサイズ(バイト)。 |
onNuiAssistEventCallback:補助データと情報の受信
SDK から補助イベントと関連データを受信します。
Method signature-(void) onNuiAssistEventCallback:(NuiCallbackEvent)nuiEvent
info:(char*)info
infoLen:(int)info_len
buffer:(char*)buffer
len:(int)len;
パラメーターの説明
| パラメーター | 型 | 説明 |
|---|---|---|
nuiEvent | NuiCallbackEvent | コールバックイベント。 |
| char* | このパラメータを使用する必要はありません。 |
info_len | int | このパラメータを使用する必要はありません。 |
buffer | char* | AEC 処理後の音声などの補助データ。 |
len | int | 補助データの長さ (バイト単位)。 |
onNuiLogTrackCallback:追跡ログの受信
SDK の詳細な内部ログを受信し、問題の特定とデバッグに使用します。
-(void) onNuiLogTrackCallback:(NuiSdkLogLevel)level
logMessage:(const char *)log;
NuiCallbackEvent:イベントの種類
| イベント | 説明 |
|---|---|
EVENT_TRANSCRIBER_STARTED | タスクが正常に開始されました。 |
EVENT_VAD_START | タスク開始直後に発生します。発話開始が検出されたことを意味するものではありません。 |
EVENT_VAD_END | 発話の終わりが検出されました。 |
EVENT_ASR_PARTIAL_RESULT | 中間音声認識結果。 |
EVENT_ASR_ERROR | 音声認識中にエラーが発生しました。 |
EVENT_MIC_ERROR | 2 秒間連続して音声データを受信しなかった場合に発生します。 |
EVENT_SENTENCE_END | 文の終了が検出され、その文の完全な認識結果が返されます。 |
EVENT_TRANSCRIBER_COMPLETE | 音声認識が終了しました。 |
| AEC(音響エコーキャンセル)処理後の音声データ。 |