開発ガイド
エラーハンドリング
AI Noise Canceller は、短時間のネットワーク切断時には自動的に再接続処理を行います。しかし、長時間のネットワーク切断など回復不可能なエラー、または利用料制限エラーが発生した場合には、fatalErrorHandler
が呼び出されます。この場合、 AI Noise Canceller は終了し、内部リソースは解放されています。再度 AI Noise Canceller を利用する場合は、 SkyWayNoiseCanceller.setup
を呼び出す必要があります。
SkyWayNoiseCanceller.onFatalErrorHandler = { errorCode -> when (errorCode) { ErrorCode.QUOTA_EXCEEDED -> Log.d("YourAppTag", "Usage limit exceeded error. Please confirm your plan and usage time.") else -> Log.d("YourAppTag", "Error occurred: ${errorCode.code}. Please call SkyWayNoiseCanceller.setup() to re-setup.") // your code... } }
課金対象期間について
AI Noise Canceller の課金対象期間は、ノイズ抑制機能の開始(SkyWayNoiseCanceller.start
の呼び出し)から 終了(SkyWayNoiseCanceller.stop
の呼び出し)までの期間です。
ノイズ抑制強度(strength)の調整
strength
はノイズ抑制の強度を設定するための値です。SkyWayNoiseCanceller.setup
時に設定できるほか、changeStrength
メソッドを使用して任意のタイミングでの変更も可能です。
何も指定しなかった場合は 100 が設定されます。
// セットアップ時に設定する場合 val ncOptions = SkyWayNoiseCanceller.Options.create( strength = 90 ) val ncReady = SkyWayNoiseCanceller.setup( applicationContext, ncOptions ) // changeStrengthで変更する場合(SkyWayNoiseCanceller.setup以降呼び出してください) SkyWayNoiseCanceller.changeStrength(80)
モデルタイプについて
モデルタイプは small
, medium
, large
の 3 種類があり、セットアップ時に設定できます。
何も指定しなかった場合は small
が設定されます。
small
が最も処理負荷を抑えられるため、様々なデバイスで活用されるユースケースでは small
の利用を推奨します。
モデルタイプを変更したい場合は、SkyWayNoiseCanceller.dispose
して SkyWayNoiseCanceller.setup
より設定してください。
// 初期化時にモデルを'medium'に設定 val ncOptions = SkyWayNoiseCanceller.Options.create( modelType = ModelType.MEDIUM ) val ncReady = SkyWayNoiseCanceller.setup( applicationContext, ncOptions )
レイテンシーについて
tolerableLatencyMs
は、ノイズ抑制処理における許容可能な遅延時間を表します。デフォルトは 30ms に設定されています。通常はこのパラメータを調整する必要はありませんが、性能の低い端末でノイズ抑制性能が最も高い large
モデルを使用する場合など、端末の処理負荷が高くなり、ノイズ抑制が正しく機能しないことがあります。
そのような場合は、tolerableLatencyMs
の値を(最大 100ms まで)大きくすることで処理負荷を軽減し、より安定した動作が期待できます。
レイテンシーを変更したい場合、SkyWayNoiseCanceller.dispose
して SkyWayNoiseCanceller.setup
より設定してください。
// 初期化時にモデルを'medium'に設定 val ncOptions = SkyWayNoiseCanceller.Options.create( tolerableLatencyMs = 100 ) val ncReady = SkyWayNoiseCanceller.setup( applicationContext, ncOptions )
サンプリングレートについて
通話品質および音声処理の最適化のため、Audio Input のサンプリングレートは 16kHz に設定することを推奨します。
SkyWay Android SDK の最新バージョン(v3.2.0以降)では、audioInputSampleRate
のデフォルト値がすでに 16kHz に設定されています。別の値を使用したい場合は、SkyWayContext.Options.audioInputSampleRate
にて設定を変更してください。
audioInputSampleRate は SkyWayContext.setup() の呼び出し時のみ設定可能ですので、ご注意ください。