C SDK
SDKを使用する前に、まずインターフェイスプロトコルを読んでください。詳細についてはインターフェイスプロトコルを参照してください。
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を使用して必要なライブラリを指定する必要があります。
重要なインタフェースの説明
| 関数名 | パラメータ | 説明 |
|---|---|---|
| getAsrVersion | 無し | SDKのバージョン番号を取得する |
| asrGetToken | char* appId : appId, char* appSecret : appSecret | tokenを取得し、JSON形式で返す。: {"status":"00000","message":"success","data":{"app_id":"string","token":"string","expiration_time":1686622013}} expiration_timeはtokenの有効期限であり、有効期限が切れる前にトークンは再利用可能です 使用する際に、data.tokenを抽出して対応するインタフェースに渡す必要があります |
| getAsrParams | 無し | 識別パラメータを取得し、AsrParams構造体の説明を参照してください |
| startRecognize | char* token: asrGetTokenインタフェースを通じて取得します AsrParams params: 識別パラメータです。 AsrParams構造体の説明を参照してください RecognizerListener listener: 識別コールバックです。 RecognizerListener構造体の説明を参照してください | 一句の認識を開始します。 |
| asrFeed | char* taskId: onStartが返すtaskId、char* data: 音声データです int length : 配列の長さです。 | 音声データの送信は、listenerのonStartコールバックで何回も呼び出す必要があります。 |
| stopRecognize | 無し | 一句の認識を停止します。 |
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 | いいえ | 無し |
| const char *forbiddenWordsId | 敏感詞ID | いいえ | 無し |
RecognizerListener構造体
| 関数の定義 | 説明 |
|---|---|
| void (*onStart)(const char *taskId) | 開始認識コールバックです。コールバック内でfeedを呼び出して音声データを送信する必要があります |
| void (*onIntermediateResult)(const char *taskId, int index, const char *msg) | 中間結果コールバックです。まず、パラメータでenableIntermediateResultをtrueに設定してください |
| void (*onResult)(const char *taskId, const char *msg) | 認識結果コールバックです。認識が終了した後、最終的な認識結果を返します |
| 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) | リアルタイム音量コールバックです |
サンプルコード
asr-demo.cppを参照してください
状態コード一覧
| エラーコード | エラーメッセージ | 説明 | 解決策 |
|---|---|---|---|
| 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 | 呼び出し順序が不正確です | 通常の順序で呼び出します |