すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:Fun-ASR-Realtime iOS SDK

最終更新日:Sep 29, 2026

Fun-ASR-Realtime の iOS SDK のパラメーター、インターフェイス、コールバックと使用方法を説明します。

クイックスタート

  1. API キーを取得: API キーを取得

  2. 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 キーを自分のキーに置き換えて機能を試します。

呼び出し手順

  1. SDK を初期化します。
  2. 用途に応じてパラメーターを設定します。nui_initialize で接続・制御パラメーターを、nui_set_params で認識品質パラメーターを設定します。
  3. nui_dialog_start を呼び出して認識を開始します。
  4. onNuiAudioStateChanged コールバックで、音声の状態に応じて録音デバイスを開きます。
  5. onNuiNeedAudioData コールバックで録音データを継続的に供給するか、nui_update_audio_data を呼び出して能動的に送信します。
  6. onNuiEventCallback でイベントを監視し、音声認識結果を取得します。
  7. nui_dialog_cancel を呼び出して認識を停止し、EVENT_TRANSCRIBER_COMPLETE イベントで終了を確認します。
  8. 認識機能が不要になったら、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"
}
パラメーターの説明
パラメーター型必須説明
urlStringはいサービスアドレス:
  • wss://dashscope.aliyuncs.com/api-ws/v1/inference
  • 中国(北京):wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference
  • シンガポール:wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference
{WorkspaceId} を実際の ワークスペースID に置き換えます。
apikeyStringはい

API キー。

service_modeStringはい動作モード。リアルタイム音声認識では "1" に固定します。
device_idStringはいエンドユーザーを識別する一意の文字列。アプリ内のユーザー ID、またはクライアントで生成したデバイス識別子を指定できます。主にログの追跡と問題の調査に使用します。

audio_update_manually

Stringいいえ音声データの能動的な送信を有効にするかどうか。デフォルトは "false" です。"true" に設定し、SDK バージョンが AEC や VAD などのデバイス側音声処理をサポートする場合、これらの機能はデフォルトで有効になります。

workspace

Stringいいえオンデバイスリソースファイルが保存されているパスです。このパラメータは、audio_update_manually が "true" に設定されており、AECやVADなどのオンデバイス音声処理機能が有効な場合に必須です。
debug_pathStringいいえログファイルの保存先。nui_initialize の save_log が YES の場合のみ有効です。この場合、保存先の設定は必須で、未設定だとエラーになります。ローカルには最大 2 個のログファイルを保持します。
save_wavStringいいえデバッグ用音声を保存するかどうか。保存先は debug_path です。デフォルトは "false"。"true" は保存、"false" は保存しません。nui_initialize で save_log を true にした場合のみ有効で、debug_path の設定も必要です。
max_log_file_sizeintいいえログファイルの最大サイズ(バイト)。nui_initialize の save_log が YES の場合のみ有効です。デフォルトは 104857600(100 × 1024 × 1024 バイト、100 MiB)です。
log_track_levelintいいえ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": "fun-asr-realtime",
        "sr_format": "pcm",
        "sample_rate": "16000"
    }
}
パラメーターの説明
最上位パラメーター型必須説明
service_typeintはい音声サービスの種類。リアルタイム音声認識では 4 に固定します。
nls_configobjectはい認識の主要な設定オブジェクト。モデル選択や認識品質の制御などのパラメーターを含みます。
nls_config.modelstringはいモデル名。
nls_config.sr_formatstringはい

音声形式。

有効な値:

  • pcm
  • opus

重要PCM 音声データを渡し、このパラメーターを opus にすると、SDK が内部で Opus にエンコードします。

nls_config.sample_rateintはい

サンプリングレート(Hz)。

8 kHz モデルは 8000 Hz のみ、その他のモデルは任意のサンプリングレートをサポートします。

重要AEC や VAD などのデバイス側音声処理を有効にした場合、8000 Hz はサポートされません。

nls_config.semantic_punctuation_enabledbooleanいいえ

セマンティックセグメンテーションを有効にするかどうか。

デフォルト値:false。

  • true:セマンティックセグメンテーションを有効にし、VADセグメンテーションを無効にします。
  • false(デフォルト):VADセグメンテーションを有効にし、セマンティックセグメンテーションを無効にします。

セマンティックセグメンテーションはより正確で、会議の文字起こしシナリオに適しています。VAD(Voice Activity Detection)セグメンテーションはレイテンシが低く、対話型シナリオに適しています。

nls_config.max_sentence_silenceintいいえ

セグメンテーション用のVAD無音閾値(ミリ秒単位)です。発話区間の後の無音時間がこの閾値を超えると、システムは文が終了したと判断します。semantic_punctuation_enabled が true に設定されている場合、このパラメーターは sentence_end を返す基準としては使用されませんが、低く設定しすぎると認識パフォーマンスに影響を与える可能性があります。

デフォルト値:1300。

有効な値:[200, 6000]。

nls_config.multi_threshold_mode_enabledbooleanいいえ

重要semantic_punctuation_enabled が false の場合のみ有効です。

複数しきい値モードを有効にするかどうか。有効にすると、VAD による区切りが長くなりすぎるのを防ぎます。

デフォルト値:false。

nls_config.heartbeatbooleanいいえ

ハートビートパケットを有効にするかどうか。

デフォルト値:false。

  • true:無音音声が連続して送信されている場合でも、サーバーへの接続を維持します。
  • false(デフォルト):無音音声が連続して送信されている場合でも、一定時間後に接続がタイムアウトして閉じられます。

無音音声とは、オーディオファイルまたはデータストリーム内で音声信号を含まないコンテンツを指します。AudacityやAdobe Auditionなどのオーディオ編集ソフトウェアを使用するか、FFmpegなどのコマンドラインツールを使用して、無音音声を生成できます。

nls_config.vocabulary_idstringいいえ

事前コンパイルされたホットワードリストのID。

ホットワードリスト作成APIを呼び出して、このIDを事前に生成します。リスト内のホットワードを使用するには、認識中にこのIDを渡します。

語彙が既知で比較的安定しており、リクエスト間で同じワードリストを再利用する必要があるシナリオに適しています。

使用方法の詳細については、「事前コンパイルされたホットワード」を参照してください。

nls_config.language_hintsarray[string]いいえ

認識する音声の言語。デフォルト値はなく、未設定の場合はモデルが自動検出します。

1 つの値を設定できます。複数設定した場合は最初の値のみ有効です。

Click to view the supported language codes

  • fun-asr-realtime, fun-asr-realtime-2025-11-07:

    • zh: Chinese
    • en: English
    • ja: Japanese
    • ko: Korean
    • vi: Vietnamese
    • th: Thai
    • id: Indonesian
    • ms: Malay
    • tl: Filipino
    • hi: Hindi
    • ar: Arabic
    • fr: French
    • de: German
    • es: Spanish
    • pt: Portuguese
    • ru: Russian
    • it: Italian
    • nl: Dutch
    • sv: Swedish
    • da: Danish
    • fi: Finnish
    • no: Norwegian
    • el: Greek
    • pl: Polish
    • cs: Czech
    • hu: Hungarian
    • ro: Romanian
    • bg: Bulgarian
    • hr: Croatian
    • sk: Slovak
  • fun-asr-realtime-2026-02-28:

    • zh: Chinese
    • en: English
    • ja: Japanese
  • fun-asr-realtime-2025-09-15:

    • zh: Chinese
    • en: English
  • fun-asr-flash-8k-realtime, fun-asr-flash-8k-realtime-2026-01-28:

    • zh: Chinese

nls_config.speech_noise_threshold

floatいいえ

音声とノイズを区別するための閾値で、Voice Activity Detection(VAD)の感度を調整するために使用されます。

有効な値:[-1.0, 1.0]。

値の説明:

  • 値が -1 に近いほど:ノイズ閾値が下がり、ノイズが音声として認識されやすくなるため、より多くのノイズが文字起こしされる可能性があります。
  • 値が +1 に近いほど:ノイズ閾値が上がり、音声がノイズとして誤判定されやすくなるため、一部の音声がフィルタリングされる可能性があります。

これは高度な設定パラメータです。これを調整すると認識結果に大きな影響を与える可能性があります。推奨事項:

  • 調整前に結果を徹底的にテストおよび検証してください。
  • 実際の音声環境に基づいて小幅に調整します(0.1 のステップを推奨)。
nls_config.special_word_filterobjectいいえ

音声認識中に処理するセンシティブワードを指定し、異なるセンシティブワードに対して異なる処理方法を設定することをサポートします。詳細については、「センシティブワードフィルタリング」を参照してください。

nls_config.enable_connection_fast_check

BOOLいいえ切断をできるだけ早く報告するため、高速ネットワークチェックを有効にするかどうか。デフォルトは NO です。

主要 API

NeoNui

nui_initialize

音声認識 SDK インスタンスを初期化します。SDK はシングルトンです。nui_release を呼ぶ前に再初期化しないでください。

Method signature
-(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

認識品質パラメーターを JSON 形式で設定します。nui_dialog_start の前に呼び出します。

Method signature
-(NuiResultCode) nui_set_params:(const char *)params;
パラメーターの説明
パラメーター型説明
paramschar*認識品質パラメーター。

nui_dialog_start

認識を開始します。

Method signature
-(NuiResultCode) nui_dialog_start:(NuiVadMode)vad_mode
                      dialogParam:(const char *)dialog_params;
パラメーターの説明
パラメーター型説明
vad_mode

NuiVadMode

VADモード。MODE_P2T に固定されています。

dialog_paramschar*

接続・制御パラメーターの apikey に一時 API キーを使用している場合、有効期限が切れたらここで更新できます。コンテキスト拡張で認識精度を高めるためのコンテキストも渡せます。

内容は JSON 形式です。

{
  "apikey": "st-****",
  "input_context": [
    {
      "role": "user",
      "content": [
        {
          "text": "xxxxx",
          "type": "input_text"
        }
      ]
    }
  ]
}

nui_dialog_cancel

認識を終了するか、現在の対話を直ちにキャンセルします。

Method signature
-(NuiResultCode) nui_dialog_cancel:(BOOL)force;
パラメーターの説明
パラメーター型説明
forceBOOL強制終了して最終結果を破棄するかどうか。YES:サーバーの最終認識結果を待たずに直ちに終了します。NO:タスクを終了し、完全な結果が返るまで待ちます。

nui_dialog_action

対話中にアクションを送信し、認識コンテキストやその他の実行時動作を更新します。

Method signature
-(NuiResultCode) nui_dialog_action:(const char *)action_params;
パラメーターの説明
パラメーター型説明
action_paramschar*認識コンテキストやその他の実行時動作を更新する JSON 文字列。
action_params.typeString"action" に固定します。
action_params.commandString実行時コマンド。context:コンテキスト拡張を直ちに更新して認識精度を高めます。play_start:デバイス側 AEC 使用時に、音声再生の開始を内部 AEC プレーヤーへ通知します。play_over:デバイス側 AEC 使用時に、再生の終了を通知します。
action_params.contextString

command が "context" の場合、直ちに更新するコンテキスト拡張を指定します。例:

{
  "context": [
    {
      "role": "user",
      "content": [
        {
          "text": "xxx",
          "type": "input_text"
        }
      ]
    }
  ]
}

nui_update_audio_data

audio_update_manually が "true" の場合、onNuiNeedAudioData で録音データを供給せず、このメソッドで能動的に送信します。

Method signature
-(NuiResultCode) nui_update_audio_data:(const char *)data
                                    Len:(int)length
                              FirstPack:(BOOL)first_pack;
パラメーターの説明
パラメーター型説明

data

const char *プッシュするオーディオデータ。
lengthint音声データの長さ (バイト単位)。

first_pack

BOOLこのパラメータを使用する必要はありません。

nui_push_reference_data

audio_update_manually が "true" でデバイス側 AEC が有効な場合、このメソッドでプレーヤーの再生音声を参照信号として送信します。

Method signature
-(NuiResultCode) nui_push_reference_data:(const char *)data
                                     Len:(int)length
                               FirstPack:(BOOL)first_pack;
パラメーターの説明
パラメーター型説明

data

const char *プッシュするオーディオデータ。
lengthint音声データの長さ (バイト単位)。

first_pack

BOOLこのパラメータを使用する必要はありません。

nui_release

SDK の内部リソースをすべて解放し、実行中のタスクをすべて強制終了します。呼び出し後はインスタンスを使用できません。再使用するには、nui_initialize で再初期化します。

Method signature
-(NuiResultCode) nui_release;

nui_get_version

現在の SDK バージョンを取得します。nui_initialize の呼び出し後のみ値を返します。

Method signature
-(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;
パラメーターの説明
パラメーター型説明
nuiEventNuiCallbackEventコールバックイベント。
dialoglongセッション ID。このパラメータを使用する必要はありません。
wuwchar*音声ウェイクアップ。このパラメータを使用する必要はありません。
asr_resultchar*

音声認識結果。

finishBOOL現在の認識ラウンドが終了したかどうか。
codeint

EVENT_ASR_ERROR イベントが発生した場合にのみ有効です。

onNuiAudioStateChanged:音声状態の監視

SDK はこのコールバックで録音の開始・停止タイミングを通知します。

Method signature
-(void) onNuiAudioStateChanged:(NuiAudioState)state;
NuiAudioState states
パラメーター説明
STATE_OPEN

インタラクションが開始されました。録音デバイスを開いて録音を開始できます。

STATE_PAUSE

インタラクションが停止しました。録音を停止できます。

STATE_CLOSESDK インスタンスがリリースされました。録音デバイスを完全に閉じることができます。

onNuiNeedAudioData:認識用音声データの供給

認識開始後、このコールバックは継続的に呼ばれます。認識する音声データをここで供給します。

Method signature
-(int) onNuiNeedAudioData:(char *)audioData length:(int)len;
パラメーターの説明
パラメーター型説明
audioDatachar*供給する音声データ。
lenint供給する音声データのサイズ(バイト)。

onNuiAssistEventCallback:補助データと情報の受信

SDK から補助イベントと関連データを受信します。

Method signature
-(void) onNuiAssistEventCallback:(NuiCallbackEvent)nuiEvent
                            info:(char*)info
                         infoLen:(int)info_len
                          buffer:(char*)buffer
                             len:(int)len;
パラメーターの説明
パラメーター型説明
nuiEventNuiCallbackEvent

コールバックイベント。

info

char*このパラメータを使用する必要はありません。
info_lenintこのパラメータを使用する必要はありません。
bufferchar*AEC 処理後の音声などの補助データ。
lenint補助データの長さ (バイト単位)。

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_ERROR2 秒間連続して音声データを受信しなかった場合に発生します。
EVENT_SENTENCE_END文の終了が検出され、その文の完全な認識結果が返されます。
EVENT_TRANSCRIBER_COMPLETE音声認識が終了しました。

EVENT_AEC_DATA

AEC(音響エコーキャンセル)処理後の音声データ。