iOS SDK
注意:
iOS 11.0以上バージョンに対応しています。
インターネット接続でのアクティベーションのみサポート
1 統合手順
注意:オフライン認識機能を体験したい場合は、事前にビジネス連絡先まで連絡し、APPIDを取得してください。また、体験したい言語種別についてもお知らせください。連絡先:voice.contact@dolphin-ai.jp。
- 手動でインポート:SpeechEvaluate.framework をプロジェクトにドラッグします。その後、General -> Frameworks, Libraries, and Embedded Content 下で SpeechRecognitionSDK.framework の Embed を Embed&Sign に変更します。
- podsにSocketRocket0.6.0、AFNetworking、SSZipArchive2.4.0が含まれることを確保してください
- offline sdk add model file: モデルファイル(.zipファイル)をフレームワークフォルダに入れます。
1.1 アプリ関連の権限を追加してください
- プロジェクトの info.plist ファイルに Privacy - Microphone Usage Description を追加して、マイクアクセス権限を追加します。
1.2 呼び出し手順/サンプルコード
識別機能が必要なファイルにおいて、デリゲート協定 EvalListener を遵守してください。
//設定主要パラメータ
SDKParams *params = [[SDKParams alloc] init];
params.appId = @"";
params.appSecret = @"";
params.sample_rate = 16000;
params.format = @"pcm";
params.realtime = NO;
params.langType = @"zh-cmn-Hans-CN";
params.enable_intermediate_result = YES;
params.enable_punctuation_prediction = YES;
params.max_sentence_silence = 450;
params.enable_words = YES;
/**
@sourcePath カスタマイズ・パス
@Documents/userPatu/model,modelの前のパスは任意の名前を付けることができる。
@VADファイルはmodelファイルの下になければならない。例:Documents/userPath/model/vad
@言語ファイルはmodel/asrファイルの下になければなりません。例:Documents/userPath/model/asr/ja-JP
*/
params.sourcePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"/userPath/model"];1.2.1 識別クラスを作成し、承認してください
| 名前 | 型 | 説明 |
|---|---|---|
| SpeechRecognition | SpeechRecognition | 識別クラス |
| params | SDKParams | パラメータと設定 |
//初期化-オフラインネットワーク認識
self.params.initType = YES;
self.params.online = NO;
SpeechRecognition *speechManger = [[SpeechRecognition alloc] init];
[speechManger setInitSDK:self params:params];
self.speechManger = speechManger;1.2.2 コールバックメソッドの説明
| 名前 | 型 | 説明 |
|---|---|---|
| onStart | String | エンジン接続開始のコールバックメソッド |
| onResult | String | エンジンが結果を返すコールバックメソッド |
| onRealtimeResult | String | エンジンが中間結果を返すコールバックメソッド |
| onWarning | String | エンジンが警告を返すコールバックメソッド |
| onError | String | エンジンがエラーを返すコールバックメソッド |
| onMachineCode | String | エンジンがマシンコードを返す |
- (void) onRealtimeResult: (NSString *) result;
- (void) onResult: (NSString *) result;
- (void) onStart: (NSString *) taskId;
- (void) onStop;
- (void) onGetAudio: (NSData *)data;
- (void) onError: (NSString *)code msg:(NSString*)msg taskId:(nullable NSString*)taskId;
- (void) onWarning: (NSString *)code msg:(NSString*)msg taskId:(nullable NSString*)taskId;
- (void) onMachineCode: (NSString *)MachineCode;1.2.3 インターフェースパラメータの説明
| パラメータ | タイプ | 必須 | 説明 | デフォルト値 |
|---|---|---|---|---|
| lang_type | String | はい | 言語オプション | 必須 |
| format | String | いいえ | 音声エンコード形式 | pcm |
| sample_rate | Integer | いいえ | 音声サンプルレート | 16000 |
| enable_intermediate_result | Boolean | いいえ | 中間認識結果を返すかどうか | false |
| enable_punctuation_prediction | Boolean | いいえ | 後処理で句読点を追加するかどうか | false |
| enable_inverse_text_normalization | Boolean | いいえ | 後処理でITNを実行するかどうか | false |
| max_sentence_silence | Integer | いいえ | 音声センテンスのサイレンス検出しきい値、サイレンス時間がこのしきい値を超えるとセンテンスが切り替えられます。有効なパラメータ範囲は200~1200で、単位はミリ秒です | 450 |
| enable_words | Boolean | いいえ | 単語情報を返すかどうか | false |
| enable_modal_particle_filter | Boolean | いいえ | 語気詞フィルタを有効にするかどうか | false |
| hotwords_id | String | いいえ | 単語ID | 無し |
| hotwords_weight | Float | いいえ | 単語ウェイト、値の範囲[0.1, 1.0] | 0.4 |
1.2.4 開始/停止識別
<1>認識開始(sdk内部録音)
[self.speechManger startRecording];
認識終了
[self.speechManger stopRecording];
<2>ファイル認識 (録音ファイルのローカルパスを直接渡す)
[self.speechManger startRecognitionOralWithWavPath:@"wav音声ファイルのパス"];
<3>音声データ認識(sdk外部録音、またはファイルをNSDataデータに変換して認識)
- (void)doStart:(FinishBlock)finishBlock;
- (BOOL)doSetData:(NSData *) data isLast:(bool)isLast;
呼び出し方法
[self.speechManger doStart:^(_Bool success) {
if (success) {
if(最後のセグメントに音声がある場合){
[self.speechManger doSetData:data isLast:YES];
}else{
[self.speechManger doSetData:data isLast:NO];
}
}
}];1.2.5 単語の読み込み
[self.speechManger loadWords];1.2.6 オフラインモデルの解放
//現在認識されている言語モデルをリリース
[self.speechManger offLineRelese];
//全モデルをリリース
[self.speechManger offLineReleseAll];1.2.7 ログ生成をキャンセルする
model/asr/ja-JP/configにパラメータを設定する:
log-level = 6
log-rotate-days=02 状態コード表
| エラーコード | エラーメッセージ | 説明 | 解決策 |
|---|---|---|---|
| 110100 | Unauthorized | 認証されてない | パラメータを承認された能力に変更またはビジネス担当者に連絡してAI能力を追加します |
| 110101 | Invalid Activation Code | アクティベーションキーが正しくありません | 正しいアクティベーションキーを入力します |
| 110102 | Model Count Exceeds Limit | モデル数が上限を超えています | ビジネス担当者に連絡してください |
| 110103 | Authorization Expired | 承認が期限切れです | ビジネス担当者に連絡して承認期間を延長します |
| 110104 | Authorization Failed | 承認に失敗しました | ビジネス担当者に連絡してください |
3 SDKダウンロード&オフラインモデルのダウンロード
3.1 SDKダウンロード
SDKのダウンロードアドレスは以下の通り: iOS SDK