6.1.3 SaveRawPCM

6.1.3.1 ノードの概要

時間領域の音声データをファイルに保存する.音声データは, Raw PCM 形式に基づき 16 [bit]または 24 [bit] 整数でファイルに書き出される. その際,入力データの型に応じて多チャネル音声データ,または,モノラル音声データ として記録される.

SaveRawPCM ノードにより書き出されるファイルを WAVE ファイルに変換するためには, ヘッダをファイルの先頭に追加すればよい.例えば SoX などのソフトウェアを使用することで ヘッダを追加することができる.しかし,SaveWavePCM ノードを使用するとこのヘッダの 追加を自動的に行うため,WAVE ファイルが必要な場合は SaveWavePCM ノードを使うとよい.

6.1.3.2 必要なファイル

無し.

6.1.3.3 使用方法

どんなときに使うのか

音源分離における性能を確認するために,分離音を聞いてみたい場合や, AudioStreamFromMic ノードと組みわせて,マイクロホンアレイを用いて 多チャンネルの音声データ録音を行う場合に用いる. 分離音を保存したい場合は,この SaveWavePCM ノードに接続する前に Synthesize ノードで時間領域の音声データにしておく必要がある.

典型的な接続例

6.86.9SaveRawPCM の使用例を示す. 図6.8 は,AudioStreamFromMic からの多チャネル音声データを SaveRawPCM ノードでファイルに保存する例である.この場合,各チャンネルの 音声データは別々のファイルにそれぞれモノラル音声データとして保存される. 図6.8 では,MatrixToMap ノードを取り除き,AudioStreamFromMic ノードと SaveRawPCM ノードを直接つなぐことができる.この場合は 全チャンネルの音声データが一つのファイルに保存される.

6.9 は,分離音を SaveRawPCM ノードによって保存する例である. GHDSS ノードや,分離後のノイズ抑圧を行う PostFilter ノードから 出力される分離音は周波数領域にあるので,Synthesize ノードによって 時間領域の波形に変換したのち,SaveRawPCM ノードに入力される. WhiteNoiseAdder ノードは,分離音の音声認識率向上のため通例用いられる もので,SaveRawPCM の使用に必須ではない.

\includegraphics[width=.9\textwidth ]{fig/modules/SaveRawPCM-1}
Figure 6.8: SaveRawPCM の接続例1

\includegraphics[width=.9\textwidth ]{fig/modules/SaveRawPCM-2}
Figure 6.9: SaveRawPCM の接続例2

6.1.3.4 ノードの入出力とプロパティ

Table 6.4: SaveRawPCM のパラメータ表

パラメータ名

デフォルト値

単位

説明

BASENAME

string 

sep_

 

保存するファイル名のプレフィックス.

ADVANCE

int 

160

[pt]

ファイルに保存する音声波形の分析フレームのシフト長.

BITS

int 

16

[bit]

ファイルに保存する音声波形の量子化ビット数.

       

16 または 24を指定可.

入力

INPUT

: Map<int, ObjectRef> または Matrix<float> 型.前者は分離音など,音源 ID と音声データの構造体, 後者は多チャネルの音声データ行列.

出力

OUTPUT

: Map<int, ObjectRef> または Matrix<float> 型.入力と同じものが出力される.

パラメータ

BASENAME

: string 型.デフォルトは sep_.ファイル名のプレフィックスを指定する. 出力されるファイル名は,音源 ID が付いている場合は “BASENAME_ID.sw” となる. 3つの混合音を分離した結果の分離音のファイル名は,BASENAME が sep_ のとき, sep_0.sw,sep_1.sw,sep_2.sw などとなる.

ADVANCE

: int 型.他のノードの ADVANCE の値と揃える必要がある.

BITS

: int 型.ファイルに保存する音声データの量子化ビット数.16 または 24 を指定可.

6.1.3.5 ノードの詳細

保存されるファイルのフォーマット: 保存されるファイルは,ヘッダ情報を持たない Raw PCM 音声データとして記録される. したがって,ファイルを読む際には,適切なサンプリング周波数とトラック数, 量子化ビット数を 16 [bit] または 24 [bit] に指定する必要がある.

また,入力の型によって書き出されるファイルは次のように異なる.

Matrix<float> 型

このとき書き出されるファイルは,入力の行の数だけチャネルを持った 多チャネル音声データファイルとなる.

Map<int, ObjectRef> 型

このとき書き出されるファイルは, BASENAME の後に ID 番号が付与されたファイル名で, 各 ID ごとにモノラル音声データファイルが書き出される.