既知の問題
AndroidでのオーディオインプットCaveat
モバイルデバイスでのオーディオ録音に関連する既知の問題があります。
2つ以上の通常のAndroidアプリは同時に音声を録音できません。別のアプリが音声を録音している間に音声を録音しようとすると、録音は失敗します(ホワイトノイズが録音されます)。
詳細については、以下のリンクを参照してください:
SORI SDKの音声認識が進行中の間、マイクは録音を開始したアプリによってロックされます。認識が停止するまで、他のアプリは音声をキャプチャできません。
例外として、システム権限を持つ特権アプリ(AIアシスタント、アクセシビリティ権限(画面録画アプリなど))は、通常のアプリがマイクを先取りしても録音を続けることができます。
着信通話、アラーム、その他のシステム音はこの制限の影響を受けません。
SORI SDKは、アプリが画面の最上部に表示されていない場合でも音声認識を続行できます(フォアグラウンドサービスを使用)。この場合、ユーザーは音声認識がまだ継続していることに気付かない可能性があります。不要なVCを防ぐために、音声認識を停止する方法を提供することをお勧めします。
iOS での音声録音について
バックグラウンド認識
SORI SDKはバックグラウンド認識をサポートしています。オーディオレコーダーがバックグラウンドで実行できるように指定すれば、バックグラウンド認識も可能です。
プロジェクトのInfo.plistファイルに以下のキーと値を追加することで、バックグラウンド認識を使用できます。 以下のコードは例で、audio
が重要な部分です。
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>remote-notification</string>
<string>audio</string>
</array>
TIP
すべての権限が必要なわけではありませんが、上記の3つの権限を持つことはSORI SDKの動作を妨げません。
バックグラウンド認識使用の副作用
SORI SDKは、音を聞くためにApple Audio Queue Systemを使用してマイクからPCMデータを取得します。システムや他のアプリと競合することなくオーディオレコーダーを使用するために、SORI SDKはAudio Session(AVAudioSession
)を以下のように設定します。
- Category:
AVAudioSessionCategoryPlayAndRecord
- Mode:
AVAudioSessionModeMeasurement
- Options:
AVAudioSessionCategoryOptionMixWithOthers
ほとんどの状況で、上記のAudio Session設定は問題を引き起こしません。ただし、特定のアプリのAudio Session設定によっては、まれにSORI SDKまたは特定のアプリの動作に副作用が発生する場合があります。ほとんどの場合、副作用はスピーカーやイヤホンから音が出ないことです。