Pitch Flattener

公開、 更新

Pitch Flattener

概要

 鉄道車両のモータ音など、音の周波数が時間に比例して変化する音声のピッチを一定にするツールです。

更新履歴

2016-12-25
Version 1.1
スペクトログラムの実装
対応音声フォーマットの拡充
音声変換パラメータの変更
バッチ処理実行前に確認ウィンドウを表示
ログ出力機能の廃止
特定の条件でバッチ処理に失敗する不具合の修正
アプリ本体とサンプルデータを分離して頒布
2015-04-01
Version 1.0
公開

ライセンス

 当アプリケーションには、サードパーティー製ソフトウェアが含まれています。当アプリケーションのダウンロード・使用・再頒布の際には、以下の一覧に示す全てのライセンス条項に同意されたものとします。

ソフトウェア名 ライセンス条項
Math.NET Numerics Math.NET Numerics License (MIT/X11)
Reactive Extensions マイクロソフト ソフトウェア ライセンス条項
Visual Studio 2013 Image Library* マイクロソフト ソフトウェア ライセンス条項

*インストーラ版のみ

ダウンロード

インストーラ版

 インストールを手軽に済ませたい場合はこちらからアプリ本体を入手してください。

Download (2016-12-25 公開, 1.16MiB / 1,224,949bytes)

ZIP版

 インストーラを使わず手動でインストールしたい場合はこちらからアプリ本体を入手してください。

Download (2016-12-25 更新, 0.98MiB / 1,036,783bytes)

サンプルデータ

 いくつかの鉄道車両のピッチ変換処理前のモータ音ファイルとPitch Flatter用のバッチ処理用CSVファイルがセットになったサンプルデータです。

Download (2016-12-25 公開, 7.60MiB / 7,970,132bytes)

インストール

 Pitch Flattenerが動作する環境はMicrosoft .NET Framework Version 3.5がインストールされているWindows PCです。お使いのPCにランタイムがインストールされていない場合は予めインストールしておいてください。

 インストーラ版をダウンロードされた場合は、ダウンロードしたzipファイルを解凍し、中に含まれているセットアップファイル(Setup.msi)を実行してください。ZIP版をダウンロードされた場合は、ダウンロードしたzipファイルを解凍し、中に含まれているPitch Flattenerフォルダを適当な場所に移動してください。

アンインストール

 インストーラ版の場合は、コントロールパネルよりアンインストール操作を行ってください。ZIP版の場合は、Pitch Flattenerフォルダを丸ごと削除してください。

アップデート

 バージョン1.0からバージョン1.1へのアップデートはアプリケーション本体のPitchFlattener.exeの上書きのみでOKです。

使い方

音声の読み込み

 音声ファイルを読み込むには、メニューの「ファイル」→「開く」よりダイアログを使用してファイルを指定するか、もしくはファイルをアプリに直接ドラッグ&ドロップします。読み込める音声ファイルは8・16・24・32bit-PCM、32・64bit-floatで音声データを保持するモノラル / ステレオのWaveファイルです。サンプリング周波数の制約はありません。

ピッチ変換パラメータの設定

 ピッチの変換度合いは「オクターブ差」のパラメータで指定します。加速時のモータ音など、ピッチが上がっていく音の場合は正の値を、減速時のモータ音などピッチが下がっていく音の場合は負の値を指定してください。

 パラメータ設定の右に表示されているグラフは、WavePaseriのピッチエンベローブ機能で同様のピッチ変換処理を行うときに設定することになるピッチ変換線を模したものです。

 なお、ピッチはパラメータの大小に関わらず、常に音声ファイルの中央部分を基準として平坦化されます。

ピッチ変換と試聴

 「試聴」ボタンを押すと、指定した変換パラメータを用いてピッチ変換が行われた後に変換後の音声がループ再生されます。試聴中に「停止」ボタンを押すことで試聴を中止できます。

スペクトログラム

音声データのスペクトログラム表示

 メニューの「表示」→「スペクトログラム」をクリックするとスペクトログラムが表示され、ピッチの平坦化具合を視覚的に確認することができます。スペクトログラムは、音声ファイルを開いたときと、ピッチ変換パラメータを変更して試聴を開始したタイミングで更新されます。ピッチの平坦化を確認しやすくするために、変換した音声データに逆再生した音声データを付加しループ再生化した状態の音声データのスペクトログラムを表示します。

 当アプリケーションで実装しているスペクトログラム表示は処理が重いため、スペクトログラムの表示中はファイルサイズの大きい音声ファイルの読み込みは避けてください。PCの性能にもよりますが、スペクトログラム表示を行いながら快適に作業が可能な音声の長さは長くても十数秒程度です。

 下のステータスバーには、左から順にマウスカーソルが示す位置における音声の再生時間、周波数、音高を、最後に現在のFFT設定が表示されます。

 以下にスペクトログラムの各設定項目の説明を示します。なお、「初期化」ボタンを押すと初回起動時の設定が復元されます。

チャンネル

 音声チャンネルをL(左)・R(右)のいずれかから選択します。

スペクトログラム表示

明度

 スペクトログラムの明るさを入力します。この設定値が大きいほどスペクトログラムは明るく、小さいほど暗くなります。

レンジ

 スペクトログラム表示のダイナミックレンジを入力します。この設定値が大きいほどスペクトログラム表示のコントラストが小さくなり、小さいほど大きくなります。

ガンマ

 スペクトログラム表示に適用するガンマ補正値を入力します。

ズーム

 スペクトログラムの拡大縮小表示設定です。

 時間軸方向の拡大率を指定します。

 周波数軸方向の拡大率を指定します。

FFT設定

スペクトログラムのFFT設定

 「FFT」ボタンを押すことで表示されます。フーリエ変換に関する設定を行います。

サンプル数

 一回のFFTで処理する音声データのサンプル数を指定します。この数値が大きいほど周波数軸の解像度が高くなりますが、その一方で時間軸の解像度が低くなります。

オーバーラップ

 FFT処理を行う波形データの重複度を指定します。大きいほど時間軸の解像度が高くなりますが、FFT処理の回数も増えるので処理時間が増加します。処理時間の遅さが気になる場合は指定値を小さいものにし、代わりにスペクトログラムの拡大表示をご利用ください。

窓関数

 音声データのFFT処理前に適用する窓関数を指定します。

スペクトログラム色

スペクトログラムの色設定

 「色」ボタンを押すことで表示されます。スペクトログラムの表示色を設定します。

暗部

 グラデーションの暗い部分の色を指定します。

明部

 グラデーションの明るい部分の色を指定します。

L / Rからコピー

 反対のチャンネルから色指定をコピーします。

音声の保存

 変換された音声の保存は「保存」ボタンもしくはメニューの「ファイル」→「保存」をクリックして行います。ピッチ変換パラメータを変更した後に試聴を行っていない場合、保存時に変換処理が行われます。入力音声ファイルのフォーマットに関わらず、16bit-PCM・ステレオのデータ形式で音声は保存されます。

 以下に示す「保存設定」「保存設定2」の設定により、保存時の挙動が変わります。

ループ

 変換後の音声データに逆再生した状態の音声データを合成し、ループ再生可能な状態として保存するか否かを設定します。

ファイル名にパラメータを付加(自動命名時)

 「保存ダイアログを使用せず自動命名」にチェックが入っている場合、ファイル名の末尾に付加する文字列を「_flat」から変換パラメータを含めた「_flat_オクターブ差」に変更します(オクターブ差を表記する際に小数点のピリオドはハイフンに変換されます)。

反転ボタン

 上記の二つのチェックボックスの設定状態を反転します。

上書き確認をしない

 この項目にチェックが入っている場合、自動命名保存時において音声ファイルの保存時にファイルの上書き確認を行いません。

保存ダイアログを使用せず自動命名

 この項目にチェックが入っている場合、ファイルの保存時に「名前を付けて保存」ダイアログが表示されず、自動的に入力ファイルと同じフォルダに入力ファイル名の末尾に「_flat」が付加されたファイル名で保存が実行されます。

変換時の補間方式の設定

線形

 線形補間によりピッチ変換処理を行います。高速に変換処理を行うことができますが、特に高音域の情報が失われて明らかな音質の劣化が起こるため、制作途中段階でのみの利用を推奨します。

Lanczos

 線形補間より音質は高くなりますが、処理に時間がかかります。マシンパワーの低いPCでは、パラメータの調整段階では使用せず、仕上げの段階で後述のバッチ変換とあわせての利用をおすすめします。変換品質については、数値が大きいほど高品質になりますがデフォルトの10程度あれば十分でしょう。

バッチ処理

 バッチ処理用のパラメータを記述したCSV形式のファイルをメニューの「ファイル」→「バッチ処理」から指定するか、もしくはアプリに直接ドラッグ&ドロップして開くことで複数の音声ファイルの変換処理をまとめて行うことができます。バッチ処理時は、出力されるファイル名と保存場所は自動で決定されます(「保存ダイアログを使用せず自動命名」にチェックを入れた時と同じ挙動になります)。

 CSVファイルを開くとファイルの保存設定や変換対象ファイルを確認するためのウィンドウが表示されます。「開始」ボタンを押すとバッチ処理が始まります。確認ウィンドウでは保存設定を変更することができませんので、保存設定を変更したい場合はいったんウィンドウを閉じて設定とCSVファイルを開く作業をやり直してください。

バッチ処理確認画面

 バッチ処理用のCSVファイルの書式は以下の通りとなっております。書式は二種類ありますが、2列目の数値の大きさで周波数・オクターブ差のいずれかであるかを判断します(しきい値は10)。パラメータの読み取りに失敗した行は無視され、処理は行われません。

 バッチ処理用のパラメータは、メイン画面の「設定コピー」ボタンを押すことによりクリップボードにコピーされます。

Version 1.0から対応

パラメータ
1 Waveファイルへのパス(絶対パス・ログファイルからの相対パスのいずれか)
2 始点周波数(整数)
3 終点周波数(整数)

Version 1.1から対応

パラメータ
1 Waveファイルへのパス(絶対パス・ログファイルからの相対パスのいずれか)
2 オクターブ差(実数)

備考

入力Waveファイルの長さ

都営5300形加速音(オリジナル)

>>Download wav file (toei5300_acc_original.wav)

都営5300形加速音(ピッチ変換後)

>>Download wav file (toei5300_acc_pitchconverted.wav)

 上に示した音声のように、長めのモータ音音声データを入力してピッチ変換し、そこから複数のサンプリング音源を切り出すような使い方もできますが、元々どの程度のピッチの音であったのかが分かりづらくなることにより適切なボリュームの設定が難しくなるほか、加速度の変化の影響を受けてピッチが一定に変換しづらいなど、最終的な完成モータ音データの質を上げることが難しくなります。

 手間はかかりますが、付属のサンプルデータのように、小分けされた各モータ音のサンプリング音源ごとパラメータを設定して変換を行うことを強くおすすめします。

ピッチの平坦化の確認

ピッチの平坦化成功例

ピッチのずれが無い場合のFFT像

完全にピッチの平坦化が行われていない場合

ピッチのずれがある場合のFFT像

 スペクトログラムでピッチの平坦化を確認する場合、高い周波数の音の成分のほうがピッチのずれが大きい周波数差で現れるためピッチのずれを確認しやすいです。正確にピッチを平坦化するためには高い周波数成分も確認されると良いでしょう。

高音質での変換方法

 Audacity等での補間を併用したアップサンプリング処理→線形補完でピッチ変換処理→元のサンプリング周波数に戻す(ダウンサンプリング)の順で処理を行うと、当アプリでLanczos変換を行うよりも高音質の音声が得られます。