開発ガイド

エラーハンドリング

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の呼び出し)までの期間です。

Billing

ノイズ抑制強度(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)