@shiguredo/rnnoise-wasm
Version:
WebAssembly build of RNNoise
68 lines (66 loc) • 2.81 kB
TypeScript
/**
* WebAssembly 用にビルドした [RNNoise](https://github.com/shiguredo/rnnoise) の API を提供するためのクラス
*
* インスタンスを作成するためには {@link Rnnoise.load} 関数を使用してください
*/
declare class Rnnoise {
private rnnoiseModule;
/**
* 一度の {@link DenoiseState.processFrame} メソッド呼び出しで処理可能なサンプル数
*/
readonly frameSize: number;
private constructor();
/**
* wasm ファイルをロードして {@link Rnnoise} のインスタンスを生成する関数
*
* @returns 生成された {@link Rnnoise} インスタンス
*/
static load(): Promise<Rnnoise>;
/**
* ノイズ抑制を行うための {@link DenoiseState} インスタンスを生成します
*
* @param model 使用するノイズ抑制モデル(省略時はデフォルトモデル)
* @returns 生成されたインスタンス
*/
createDenoiseState(): DenoiseState;
}
/**
* ノイズ抑制に必要な状態を保持するクラス
*
* インスタンスを作成するためには {@link Rnnoise.createDenoiseState} メソッドを使用してください
*
* なお、メモリリークを防ぐために、インスタンスが不要となったら {@link DenoiseState.destroy} メソッドを
* 呼び出す必要があることに注意してください
*/
declare class DenoiseState {
private rnnoiseModule?;
private state;
private pcmInputBuf;
private pcmOutputBuf;
private frameSize;
/**
* 音声フレームにノイズ抑制処理を適用するメソッド
*
* @param frame ノイズ抑制処理の対象となる音声フレーム
* @returns
* VAD (voice-activity-detection) の結果を返します
*
* 結果の範囲は0から1で、値が大きいほど、入力音声フレームに人の声が含まれている可能性が高いことを意味します
*
* @throws
* 入力音声フレームに含まれるサンプルの数 (`frame.length`) が {@link Rnnoise.frameSize} と異なる場合にエラーが送出されます
*
* @remarks
* RNNoise は入力音声フレームが 16ビットPCM であると仮定しているため、
* それ以外のフォーマットのフレームを処理したい場合には、
* 呼び出し側で事前に変換を行っておく必要があります
*/
processFrame(frame: Float32Array): number;
/**
* インスタンスが割り当てた wasm 内の領域を解放します
*
* 本メソッド呼び出し後に {@link DenoiseState.processFrame} メソッドを呼ぶとエラーとなります
*/
destroy(): void;
}
export { Rnnoise, DenoiseState };