開発ガイド
TypeScript で AI Noise Canceller を利用する際の注意点
TypeScript を用いた開発に AI Noise Canceller を利用する場合、連携しようとする JavaScript SDK のバージョンによって型の互換性に伴うエラーや警告が表示される場合がございます。 対処が必要な場合は、AI Noise Canceller もしくは JavaScript SDK のどちらかを、他方に適合するバージョンへ更新してご利用ください。 なお、AI Noise Canceller と連携可能な JavaScript SDK のバージョンは、リリースノートからご確認いただけます。
未対応ブラウザ利用時のハンドリング
AI Noise Canceller は、現在スマートフォンを除く Chrome / Edge でのみ動作します。
それ以外のブラウザはサポートしておらず、動作保証はありません。そのため、動作するかどうかは、isSupported メソッドを使用して判定してください。
if (SkyWayNoiseCanceller.isSupported() === false) { console.warn("SkyWay Noise Canceller is not supported"); return; }
エラーハンドリング
AI Noise Canceller は、短時間のネットワーク切断時には自動的に再接続処理を行います。しかし、長時間のネットワーク切断など回復不可能なエラーが発生した場合には、onFatalError イベントが発火します。このイベントが発火した場合、一時的に AI Noise Canceller が利用できなくなる可能性が高いため、元の Audio Stream を利用するなど、アプリケーション側での対応が必要です。
// 元のStream const audio = await SkyWayStreamFactory.createMicrophoneAudioStream({ echoCancellation: false, }); noiseCanceller.onFatalError((event: CustomEvent<SkyWayNCError>) => { const error = event.detail; // connect中に発生するのはProcessErrorのみ if (error.type === "ProcessError") { myAudioPublication.replaceStream(audio, { releaseOldStream: false, }); } });
ブラウザのノイズ抑制機能の無効化
getUserMedia() や SkyWayStreamFactory.createMicrophoneAudioStream を使用して Audio Stream を取得する場合、 noiseSuppression を設定できます。
しかし、AI Noise Canceller を利用する際は音声ノイズを抑制する機能が競合するため、 noiseSuppression の設定を false にすることを推奨します。
const audio = await SkyWayStreamFactory.createMicrophoneAudioStream({ noiseSuppression: false, // AI Noise Cancellerと競合しないようにfalseに設定 });
また、開発中に自身で動作確認するようなユースケースで Publish した音声を Subscribe してループバックする場合は、echoCancellation も false に設定すると音声が聞き取りやすくなります。
const audio = await SkyWayStreamFactory.createMicrophoneAudioStream({ echoCancellation: false, // ループバック用にfalseに設定 noiseSuppression: false, });
課金対象期間について
AI Noise Canceller の課金対象期間は、connect を呼び出してから dispose を呼び出すまでの期間です。

現在 mute/unmute の機能は提供していないため、一時的に無効化する場合でも必ず以下のように dispose を呼び出してリソースを解放してください。
// replaceStreamで適用前のAudio Streamにreplaceする myAudioPublication.replaceStream(audio, { releaseOldStream: false, }); noiseCanceller.dispose();
また、onFatalError イベントが発火した際は内部で自動的に dispose が呼び出され課金集計処理が止まります。
ノイズ抑制強度(strength)の調整
strength はノイズ抑制の強度を設定するための値です。インスタンス生成時に設定できるほか、changeStrength メソッドを使用して任意のタイミングでの変更も可能です。
// インスタンス生成時に設定する場合 noiseCanceller = new SkyWayNoiseCanceller(context, { strength: 80 }); // changeStrengthで変更する場合 const strength = 80; noiseCanceller.changeStrength(strength);
何も指定しなかった場合は 100 が設定されます。
モデルタイプについて
モデルタイプは small , medium , large の 3 種類があり、インスタンス生成時に設定できます。
何も指定しなかった場合は small が設定されます。
small が最も処理負荷を抑えられるため、様々なデバイスで活用されるユースケースでは small の利用を推奨します。
モデルタイプを変更したい場合は、インスタンスを dispose して新しいインスタンスを作成してください。
// 初期化時にモデルを'medium'に設定 noiseCanceller = new SkyWayNoiseCanceller(context, { modelType: "medium" });
AI Noise Canceller 利用時の SkyWay Auth Token に関する注意
AI Noise Canceller は、version プロパティが 1 、 2 、 未指定となっている旧バージョンの SkyWay Auth Token ではご利用いただけません。旧バージョンの SkyWay Auth Token をご利用中の方は、 version 3 へ移行してください。なお、SkyWay Auth Token version 3 の詳しい仕様を知りたい方は、SkyWay Auth Token(各種SDK用)のページをご参照ください。
開発用リポジトリでの利用
以下のようなユースケースにより開発用のリポジトリで本ライブラリを利用したい場合、インストール用スクリプトを活用したワークフローをご使用ください。
- 公開リポジトリで開発しているソフトウェアで利用したい場合
- 常に最新版のライブラリを用いてテストを実行したい場合