本日はApple枠です。
前回は最新で更新されているリポジトリのプラグインを使用することでiPhone/iPadで動く音声認識を実装しました。
こちらの問題は、無音が続いた場合など自動的に音声認識のステータスがオフになることです。
今回はこのタイムアウトに関して変更していきます。
〇音声認識のタイムアウト
iOSでの音声認識はSpeechToText/iOS内に存在するSpeechToText.mmが実際のSwiftで提供されるSpeechAPIとのbridgeを行っています。

.mmファイルは、Objective-C++のソースコードファイルです。これは、Objective-CとC++の両方のコードを含むことができるファイル形式であり主にAppleのXcode開発環境で使用されています。
このファイルをIDEで開きます。
149行目のrecognitionTimeoutTimerがタイムアウトの設定になります。
recognitionTimeoutTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(onSpeechTimedOut:) userInfo:nil repeats:NO];
このNSTimer scheduledTimerWithTimeInterval:2.0 の2.0が秒数となっており、この値を60.0にすることで1分、600.0とすることで10分間認識し続けるという設定ができます。
同様に180行目のインターバルの値も書き換えます。
recognitionTimeoutTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(onSpeechTimedOut:) userInfo:nil repeats:NO];
前者が会話が一区切りついた場合のインターバル、後者が無音が積図いた場合のインターバルを設定しています。
本日は以上です。