開発ガイド

エラーハンドリング

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

Billing

ノイズ抑制強度(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() の呼び出し時のみ設定可能ですので、ご注意ください。