record_with_vad

Voice Activity Detection(VAD)による無音スキップ録音機能。

class mike.record_with_vad.RecordWithVAD(config)

Bases: object

Voice Activity Detection(VAD)による録音を提供するクラス。

AudioStreamManager と連携して、無音スキップ録音を行います。 シングルトンパターンを実装しており、全体でインスタンスは1つだけ作成されます。

handle_sigint(sig, frame)

Ctrl+C シグナルハンドラ。

録音を停止するためのフラグを設定します。

Parameters:
  • sig (int) – シグナル番号

  • frame (types.FrameType) – フレーム情報

record()

VAD(音声活動検出)を使用して音声を録音します。

音声が検出されたら録音を開始し、無音が一定時間続いたら終了します。 Ctrl+Cで中断できます。

Returns:

保存されたWAVファイルのパス、失敗時は None

Return type:

str or None

static rms(data: bytes) float

バイナリ音声データからRMS(二乗平均平方根)を計算します。

音声の音量レベルを表す値を返します。

Parameters:

data (bytes) – 音声データ(16ビット)

Returns:

RMS値

Return type:

float

save_wav(frames, rate, channels, sample_width)

録音フレームをWAVファイルに保存します。

Parameters:
  • frames (list) – 音声フレームのリスト

  • rate (int) – サンプルレート

  • channels (int) – チャンネル数

  • sample_width (int) – サンプル幅(バイト数)

Returns:

保存されたWAVファイルのパス、保存失敗時は None

Return type:

str or None