SoundEngine FreeスクリプトでWAVを一括分割するで、WAVの分割のやり方について記録したが、やはり、 SoundEngine Free/Proだと、読み込めないWAVがある。
私が分割したいWAVは、大体Blu-rayから抽出したものなのだけど、最近、読み込めないことが多くなってきた。 WaveZ1で、1:00:00を区切りに分割すると、 SoundEngine Free でも読み込み可能になったので、初めはサイズの問題かと思った。
しかし、今回、読み込めないWAVファイルのサイズは、1.12GBしかなかった。読み込めない理由はサイズではなく、やはり何かしたらの情報が欠けているか、何かなのだろう。それを読み込み可能なツールで再エンコードされることで、正規化されたのだろう(というのが正しいか分からないが)。
そこで、WAVを分割できる別のツールがないか探してみた。
有名なのは Audacityだろう。マルチプラットフォーム対応でLinuxでも使えるし、スクリーンショットをパッと見るに SoundEngine Free と似たようなものだろう。
インストールして、ググってみると、ラベル付けすることで、ラベル毎の分割が可能になるようだ。 【Audacity】トラックを分割して書き出す方法【ラベルトラック】。当然、そのラベル編集というのは取り込み(import)、書き込み(export)できる。
しかし、厄介なのが、その開始位置、終了位置が秒単位だということ。
Time In Length
------- ------
0:00:00.000 0:02:03.081
0:02:03.081 0:04:45.451
0:06:48.533 0:04:15.588
0:11:04.121 0:05:50.975
0:16:55.097 0:06:37.438
という形で出力されるので、秒に変換する必要がある3。まあ、やり方はいくらかあるが、Excelであればセルの書式設定 -> ユーザー定義
で[s].000
4とすることで、秒単位に変換される。
開始秒<tab>終了秒<tab>ラベル名
開始秒<tab>終了秒<tab>ラベル名
開始秒<tab>終了秒<tab>ラベル名
開始秒<tab>終了秒<tab>ラベル名
開始秒<tab>終了秒<tab>ラベル名
開始秒、終了秒5、ラベル名を記述したテキストファイルを作成・編集することで、取り込む可能なラベル編集ファイルとなる。上の例であれば以下のようになる。
0.000000 123.081000 ラベル01
123.081000 408.533000 ラベル02
408.533000 664.121000 ラベル03
664.121000 1015.097000 ラベル04
1015.097000 1412.536000 ラベル05
SoundEngine Free の時は、分割する位置を指定するだけで、幅までは指定しなかったので気付かなかったが、 BDInfo で出力される曲時間は、ミリ秒単位でマイクロ秒が省略されているために、単純に曲の長さを足していくと、ズレが生じる。
本来はTime InにLengthを足せば、次のTime Inになるはずが、ならない。下のラベル編集ファイルは、Time InにLengthをそれぞれ秒に変換して足したものだが、ラベル04の終了時間が 0.001 秒ズレてる6。
000.000000 123.081000 ラベル01
123.081000 408.532000 ラベル02
408.533000 664.121000 ラベル03
664.121000 1015.096000 ラベル04
1015.097000 1412.535000 ラベル05
とりあえず、ラベル編集ファイルが出来たら、編集-> ラベル-> ラベルの編集 -> 取り込み
でラベル編集ファイルを選択する。するとトラック2(ここでは曲単位のトラックでなく、ラベル編集単位のトラック)として、ラベルが取り込まれるので、トラック1のラベル編集を削除する7。
そして、ファイル-> 書き出し-> 複数ファイルの書き出し
をクリック。ファイル分離基準が ラベル になっているはずなので、このまま。フォーマットとしてWAVとして出力する場合、エンコーディングを選択して出力。正直、エンコーディングによる違いは分からない。
Audacityで、無劣化保存する方法はありませんか?それと、ソー… - Yahoo!知恵袋を見ると、編集-> 編集環境-> 品質-> リアルタイム変換/高品質変換 ->ディザリング
を 無し にすると再変換(劣化となるの?)が起きないそうだ。
しかし、上の知恵袋でも紹介されている
Wave ファイル専用比較ユーティリティ WaveCompareを使って、元々のWAVを確認するとやはり特殊なのかUnknown Wave format
8と表示される。両方、ディザリング無し にしたが、変換は行われた(読み取れるWAVファイルとなった)9。
上記のように再変換が行われるし、どうせflacに変換するのだから、この段階でflacで分割・変換することにした。この時にタグ編集をすることも可能だ。タグ編集が鬱陶しいならDon't show this when exporting audio
にチェックすれば次から確認されない。再びタグ編集を表示させる場合は編集-> 編集環境-> 取り込み/書き出し
で 書き出しの前にメタデータエディタを表示 にチェックする。
一度、WAVに出力してからfoobar2000でflacで変換した場合と何故か、toolは同じなのに、違いが出た。まあ、Duration、Sample rate、Channels、Bits per sampleは同じなので誤差と思って気にしない。
-
作者のページ削除済。もう取得できないかも… ↩︎
-
もともとは http://www.cinemasquid.com/blu-ray/tools/bdinfo だったが、こちらは閉鎖されている。ソース自体は GitHub - UniqProject/BDInfo: BDInfo from http://www.cinemasquid.com/blu-ray/tools/bdinfoで公開されている。 ↩︎
-
試しに時間分秒(h:mm:ss.fff)で、読み込ませたが駄目だった。 ↩︎
-
000までが限界で、それ以上は
入力した表示形式は使用できません。
と警告される。 ↩︎ -
開始秒と終了秒を同じにすることで、分割秒だけを指定できるが、その場合、全てのラベルが0:00:00.000000からその分割秒までの長さとなるので、意味がない。 ↩︎
-
ズレたとして、1ミリ秒なので気付かないだろうが、気持ちとしてはスッキリしない。 ↩︎
-
どうにか、トラック1としてラベル編集を取り込めないか、調べたが、どうも無理っぽい。また、トラック1以外に既にトラック2としてのラベル編集があると、次のトラック、トラック3として取り込まれる。 ↩︎
-
だから SoundEngine Free で読み取れなかったのだろう。 Audacity で変換後のWAVは SoundEngine Free で読み込み可能となった。 ↩︎
-
ちなみに一度 Audacity でWAVで書き出したものを、再度WAVで書き出して比較した時、リアルタイム変換/高品質変換 ->ディザリングを ノイズシェービング としても、 一致しました となった。 ↩︎