開発ガイド
エラーハンドリング
AI Noise Canceller は、短時間のネットワーク切断時には自動的に再接続処理を行います。しかし、長時間のネットワーク切断など回復不可能なエラーが発生した場合や利用料制限に達した場合には、fatalErrorHandler
が呼び出されます。この場合、 AI Noise Canceller は終了し、内部リソースは解放されています。再度 AI Noise Canceller を利用する場合は、 SkyWayNoiseCanceller.setup
を呼び出す必要があります。
SkyWayNoiseCanceller.shared.fatalErrorHandler = { errorCode in // 利用量制限の場合は何もしない if errorCode == .quotaExceeded { return } // 再度AI Noise Cancellerを利用する場合 Task { let isSetup = await SkyWayNoiseCanceller.shared.setup() } }
課金対象期間について
AI Noise Canceller の課金対象期間は、ノイズ抑制機能の開始(SkyWayNoiseCanceller.start
の呼び出し)から 終了(SkyWayNoiseCanceller.stop
の呼び出し)までの期間です。
ノイズ抑制強度(strength)の調整
strength
はノイズ抑制の強度を設定するための値です。SkyWayNoiseCanceller.setup
時に設定できるほか、changeStrength
メソッドを使用して任意のタイミングでの変更も可能です。
何も指定しなかった場合は 100 が設定されます。
// セットアップ時に設定する場合 let isSetup = await SkyWayNoiseCanceller.shared.setup(options: .init(strength: 90)) // changeStrengthで変更する場合(SkyWayNoiseCanceller.setup以降に呼び出してください) let isChanged = SkyWayNoiseCanceller.shared.changeStrength(80)
モデルタイプについて
モデルタイプは small
, medium
, large
の 3 種類があり、セットアップ時に設定できます。
何も指定しなかった場合は small
が設定されます。
small
が最も処理負荷を抑えられるため、様々なデバイスで活用されるユースケースでは small
の利用を推奨します。
モデルタイプを変更したい場合は、SkyWayNoiseCanceller.dispose
して SkyWayNoiseCanceller.setup
より設定してください。
// 初期化時にモデルを'medium'に設定 let isSetup = await SkyWayNoiseCanceller.shared.setup(options: .init(modelType: .medium))
サンプリングレートについて
通話品質および処理の最適化のためにサンプリングレートは 16kHz にすることを推奨します。 サンプリングレートを変更せずとも AI Noise Canceller を利用することは可能ですが、ノイズ抑制の効果が低下する可能性があります。
音声の Publish/Subscribe の前に、サンプリングレートを設定してください。
ただし、音声デバイスによっては実際のサンプリングレートの変更ができない場合があることに注意してください。
// サンプリングレートを 16kHz に設定 AudioSettings.setPreferredSampleRate(16000.0)