C SDK
注意:
SDKを使用する前に、まずインターフェイスプロトコルを読んでください。詳細についてはインターフェイスプロトコルを参照してください。
1 SDK Demo使い方
SDKはWindows/Linuxバージョンに分けられ、各システムはx86/x64ビットのライブラリ(libsディレクトリに格納されています)を含んでおり、各プラットフォームのrunスクリプトを使用して各プラットフォーム上で実行できます。
- Windows-x86 : run-x86.bat
- Windows-x64 : run-x64.bat
- Linux-x86 : run-x86.sh
- Linux-x64 : run-x64.sh
g++を使用してコードをコンパイルするときに、-lasrを使用してロードする必要があるライブラリを指定します。
2 重要なインタフェースの説明
| 関数名 | パラメータ | 説明 |
|---|---|---|
| getAsrVersion | 無し | SDKのバージョン番号を取得する |
| asrGetToken | char* appId : appId, char* appSecret : appSecret , bool proEnvironment : 本番環境かどうか | トークンを取得し、JSON形式で返す: {"status":"00000","message":"success","data":{"app_id":"string","token":"string","expiration_time":1686622013}} expiration_timeはトークンの有効期限であり、有効期限が切れる前にトークンは再利用可能です 使用する際に、data.tokenを抽出し、対応するインタフェースに渡す必要があります |
| getAsrParams | 無し | 認識パラメータを取得し、AsrParams構造体の説明を参照してください |
| startTranscribe | char* token : asrGetTokenインタフェースを通じて取得します AsrParams params : 認識パラメータは、 AsrParams構造体の説明を参照してください TranscriberListener listener : 認識コールバックは、 TranscriberListener構造体の説明を参照してください | リアルタイム認識を開始する |
| asrFeed | char* taskId : onStartが返すtaskId, char* data : 音声データ int length : 配列の長さ | 音声データを送信するには、listenerのonStartコールバックで何回も呼び出す必要があります |
| stopTranscribe | 無し | リアルタイム認識を停止する |
| sentenceEnd | char* taskId | 強制断句(リアルタイム認識のみ有効) |
| speakerStart | char* taskId , char* speakerId | カスタムの話者番号(リアルタイム認識のみ有効) |
AsrParams構造体
| フィールド定義 | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
| const char *langType | 言語オプション | はい | 無し |
| const char *format | 音声エンコード形式 | いいえ | pcm |
| int sampleRate | 音声サンプルレート | いいえ | 16000 |
| bool enableIntermediateResult | 中間の認識結果を返すかどうかを指定します。オンにした後、ListenerのonIntermediateResult関数に中間の認識結果が返されます | いいえ | false |
| bool enablePunctuationPrediction | 後処理で句読点を追加するかどうか | いいえ | false |
| bool enableInverseTextNormalization | 後処理でITNを実行するかどうか | いいえ | false |
| int maxSentenceSilence | 音声センテンスの静寂検出しきい値、静寂時間がこのしきい値を超えるとセンテンスが切り替えられます。有効なパラメータ範囲は200~1200で、単位はミリ秒です | いいえ | 450 |
| bool enableWords | 単語情報を返すかどうか | いいえ | false |
| bool enableModalParticleFilter | 語気詞フィルタを有効にするかどうか | いいえ | false |
| const char *hotwordsId | 単語ID | いいえ | 無し |
| float hotwordsWeight | 単語ウェイト、値の範囲[0.1, 1.0] | いいえ | 0.4 |
| const char *correctionWordsId | 強制置換単語庫ID 複数の強制置換単語庫IDを使用することができ、各IDは縦線 |で区切られます;allは全ての強制置換単語庫IDを使用することを意味します。 | いいえ | 無し |
| const char *forbiddenWordsId | NG単語ID 複数のNG単語IDを使用することができ、各IDは縦線 |で区切られます;allは全てのNG単語IDを使用することを意味します。 | いいえ | 無し |
TranscriberListener構造体
| 関数定義 | 説明 |
|---|---|
| void (*onStart)(const char * taskId) | 開始認識コールバックは、コールバックからfeedを呼び出して音声データを送信する必要があります |
| void (*onSentenceBegin)(const char * taskId, const char *msg) | 文の開始コールバック |
| void (*onSentenceEnd)(const char * taskId, const char *msg) | 文の終了コールバック |
| void (*onIntermediateResult)(const char * taskId,int index, const char *msg) | 中間結果コールバックは、まずパラメータでenableIntermediateResultをtrueに設定する必要があります |
| void (*onStop)(const char * taskId) | 認識停止コールバック |
| void (*onError)(const char *taskId, const char *code, const char *msg) | 認識エラーコールバックは、codeがエラーコード、msgがエラーメッセージです |
| void (*onWarning)(const char *taskId, const char *code, const char *msg) | 認識警告コールバックは、codeがエラーコード、msgがエラーメッセージです |
| void (*onGetVolume)(const char *taskId, float volume) | リアルタイム音量コールバック |
3 サンプルコード
asr-demo.cppを参照してください
4 状態コード表
| エラーコード | エラーメッセージ | 説明 | 解決策 |
|---|---|---|---|
| 110002 | Unauthorized | 能力未承認 | パラメータを既に承認された能力に変更するか、ビジネスコンタクトに連絡してAI能力を追加します |
| 110003 | APP ID Expired | APP ID過期 | ビジネス担当者に連絡してappidの有効期間を延長します |
| 110004 | Calling Quota Exceeded | 呼び出し超過 | ビジネス担当者に連絡して承認期間または回数を増やします |
| 110010 | Online Capabilities Not Authorized | オンライン能力が承認されていません | ビジネス担当者に連絡して承認されたオンライン能力を追加します |
| 120000 | Network Error | ネットワークエラーです | デバイスのネットワーク接続状況を確認してください |
| 200000 | Invalid Parameter | パラメータエラー | パラメータを確認してください(規定のものではない、または誤ったもの、または空の文字列が渡されている場合) |
| 210203 | Invalid Number Of Channels | 音声チャンネル数が不正確です | 音声のチャンネル数を確認してください(wav音声のチャンネル数が1ではない場合) |
| 210000 | Gateway Timeout In Receiving Data | ゲートウェイがデータを受信する際にタイムアウトしました | データが正常に送信されているかどうかを確認してください |
| 210100 | Invalid Calling Sequence | 呼び出し順序が不正確です | 通常の順序で呼び出してください |