時間領域の音声データをファイルに保存する.SaveRawPCM ノードとの違いは, 出力されるのがヘッダーを持つ WAVE 形式のファイルである点である.そのため, 例えば audacity や wavesurfer などで読み込む際に簡単である.また,ファイルを AudioStreamFromWave ノードで開きたい場合は,この SaveWavePCM で保存する.
無し.
どんなときに使うのか
SaveRawPCM ノードと同様に,分離音を聞いてみたい場合や,多チャンネルの 音声データ録音を行う場合に用いる.
典型的な接続例
使い方は,サンプリング周波数をパラメータとして指定する必要がある以外は SaveRawPCM ノードと同じである. 図6.11,6.12 の例において SaveRawPCM ノードを SaveWavePCM ノードに入れ替えて使うことができる.
パラメータ名 |
型 |
デフォルト値 |
単位 |
説明 |
BASENAME |
sep_ |
保存するファイル名のフォーマット. |
||
ADVANCE |
160 |
[pt] |
ファイルに保存する音声波形の分析フレームのシフト長. |
|
SAMPLING_RATE |
16000 |
[Hz] |
サンプリング周波数.ヘッダを作成するために使用する. |
|
BITS |
int16 |
[bit] |
ファイルに保存する音声波形の量子化ビット数. |
|
int16 または int24 を指定可. |
||||
INPUT_BITS |
as_BITS |
[bit] |
入力音声波形の量子化ビット数. |
入力
: Map<int, ObjectRef> または Matrix<float> 型.前者は分離音など,音源 ID と音声データの 構造体,後者は多チャネルの音声データ行列.
: Vector<ObjectRef> 型.音源定位結果 (Source 型の Vector )が入力される。なくても良い。
出力
: Map<int, ObjectRef> または Matrix<float> 型.入力と同じものが出力される.
パラメータ
: string 型.デフォルトは sep_.通常の文字列の場合はファイル名のプレフィックス、 あるいはフォーマットを指定する.詳細は次のセクションを参照。
: int 型.他のノードの ADVANCE の値と揃える必要がある.
: int 型.他のノードの SAMPLING_RATE の値と揃える必要がある. この値はヘッダに書き込むために用いられるだけであり,このパラメータを変更してもA/D 変換 におけるサンプリングレートを変更することはできない.
: string 型.ファイルに保存する音声波形の量子化ビット数.int16 または int24 を指定可.
: string 型.入力音声波形の量子化ビット数.int16 または int24 を指定可.as_BITSはBITSと同じ値を意味する.
保存されるファイルのフォーマット:
保存されるファイルは,ヘッダ情報を持つ WAVE ファイルとして記録される. したがって,ファイルを読む際には,特にサンプリング周波数とトラック数, 量子化ビット数を指定しなくてもよい.
また,入力の型によって書き出されるファイルは次のように異なる.
このとき書き出されるファイルは,入力の行の数だけチャネルを持った 多チャネル音声データを含む WAVE ファイルとなる.
このとき書き出されるファイルは, BASENAME の後に ID 番号が付与されたファイル名で, 各 ID ごとにモノラル音声データが書き出される (1 つのファイルには 1 つの ID に対応する音声データのみ).
保存されるファイル名の決定方法:
ファイル名の決定方法は2種類ある。
プレフィックス方式
デフォルトの動作は、パラメータ BASENAME をプレフィックスとし、 そのあとに音源IDが接続され、最後に拡張子 .wav が接続される方式で名前が決定される。 たとえば、BASENAME の値が sep_ であれば、音源 ID が 0, 1, 2 の音声が入力されると、 ファイル名は sep_0.wav, sep_1.wav, sep_2.wav となる。
フォーマット文字列方式 (HARK 2.3.1 以降)
BASENAME に次の特別な文字列パターン{tag:format}がある場合、それにしたがってファイル名が決定される。 このフォーマットを利用すると、ファイル名にさまざまな情報を追加できる。
tag には表 6.7 に示す 4 種類が使用できる。 音源 ID を表す srcid と実行時の時刻を表す date は制限なく利用できる。 方位角と仰角をあらわす azimuth と elevation を利用するためには、 SaveWavePCM に SOURCES 入力を追加し、音源定位結果を接続する必要がある。
format はオプショナルなのでなくても良い。 この部分は、桁数の指定 (03d) に利用できる。フォーマットは printf などで使われる標準的なフォーマット。
Tag |
Description |
Unit |
srcid |
音源 ID |
整数 |
date |
実行時の時刻 |
時刻文字列 (yyyyMMDD-HHmmss) |
azimuth |
方位角 (要SOURCES) |
degree(整数、小数点以下四捨五入) |
elevation |
仰角 (要SOURCES) |
degree(整数、小数点以下四捨五入) |
以下に使用例を示す。
FORMAT: wav_id_{srcid}_output
OUTPUT: wav_id_0_output.wav, wav_id_1_output.wav ...
FORMAT: wav_id_{srcid:03d}
OUTPUT: wav_id_000.wav, wav_id_001_output.wav ...
FORMAT: wav_az_{azimuth}
OUTPUT: wav_az_30.wav, wav_az_-10.wav ...
だたし、この場合同じ角度の定位結果があれば上書きされるので注意。 srcid をファイル名に含めることでファイル名の一意性が確保できる。