音声ファイルの加工
しばらく放置していた、音声ファイルの加工をしている。
以前途中まで進めていたが、声優さんから中音と高音のファイルをもらっていたのですが、なぜか高音で収録したファイルを加工していた。あとで聞き比べたら、中音の方がビジネス用に向いていた。
何の音声化は、完成したら公開するので、とりあえず、本日のメモを進める。
Waveエディタ
まずは、1ファイルになっている音源を、文節ごとに切り分ける。
Waveエディタ(波形編集)と言われるソフトを使用する。
audacity 公式ページ
このソフトは、定番中の定番である。
タグエディタというモノを使う
Linuxで使うので、ファイル名はalphabetにする必要がある。しかし、アルファベットだと、何のファイルなのかが分かりにくいので、音声ファイルの中に、タイトルなどを記録しておく。audacityでタイトルの書き出しは文字化けしてしまうため、このソフトで再編集が必要だ。
今回使ったソフトは、結構古いソフトのようだ。オリジナル開発者はすでに開発終了としているようだ。
SuperTagEditor改 公式ページこのソフトの特徴は、複数の音声ファイルのタイトルやファイル名を一度に変更出来る。しかも、エクセルからのコピペも対応しているので、忘れないように記事に残しておきたいと思った。
大量の音声ファイルを加工する
さて、audacityで複数のファイルに分けたが、そこでは細かい調整はしていない。たとえば、各ファイルの出だしや終わりの無音部分が秒数がまちまちである。手作業で無音部分をカットするのは、非常に面倒。
ここからは、Linuxを使用する。
コマンドラインを作れば、一発で複数ファイルを加工出来る。
実は以前にすでに行ったのですが、やり方をわすれた。ちゃんとメモをとっておくべきだった。
前後の無音部分を消す
sox input.wav out.wav silence 1 0.5 0% reverse silence 1 0.5 0% reverse
silence 1 0.5 0%の部分
最初の1は、無音部分を1回削除
0.5は、0.5秒以上を無音とする。
0%は閾値で、デジタル録音の場合は0%で良いし、背景ノイズがあるようなら1%など。
そして、最初のsilence 1 0.5 0%で、先頭の無音部分を処理する。
次のreverse で、音源を逆にする。
次のsilence 1 0.5 0%で先頭から無音部分を処理(逆転させている状態)
次のreverseで音源を逆転(元に戻す)
形式を変更する
wavからu-lawに変更する。
8000Hz,1チャンネルで(無指定だと失敗する)
sox out.wav -r 8000 -c 1 -t ul out.ulaw
無音削除と形式変更を一度に行う。
sox input.wav -r 8000 -c 1 -t ul out.ulaw silence 1 0.5 0% reverse silence 1 0.5 0% reverse
一括処理
いよいよ、複数のファイルを適用させる。
for file in *.wav; do sox "$file" -r 8000 -c 1 -t ul ${file/.wav/.ulaw} silence 1 0.5 0% reverse silence 1 0.5 0% reverse; done
fileという変数に、*.wav のファイルを順次格納する。
$fileで展開。
${file/.wav/.ulaw}は、展開前に.wavを.ulawに変更。
これで変換は無事に出来ている。