2010-01-14

音声の均一化

どうすれば何万ファイルもある音声ファイルの音量を均一化できるだろうか。今手元にあるそれらのファイルは、録音レベル(録音環境に起因する音量レベル)がそれぞれ大きく異なる。一つのファイルに収録されているのは数秒から十数秒の一人台詞。ただ、全く録音レベルがバラバラなのではなく、近いファイル名のものは近い録音レベルであることが多い。

ピークレベルや実効値(RMS)で正規化(ノーマライズ)するという方法は使えない。例えば「ふぅ……」みたいなため息は音量が極端に小さい。これを普通の台詞の音量と揃えると、耳元で「ふぅ……」と言われてるような大きな音になってしまう。逆に普通の台詞を「ふぅ……」へ合わせたら、とても小さな遠くで喋っているような音になってしまう。

録音レベルがある程度の範囲に収まっているのであれば、コンプレッサをかけてから増幅すればおおよそ問題無く揃う。しかしそれにも限度があって、録音レベルに何倍もの開きがあるようだとコンプレッサの影響で大きい方のファイルの音質がかなり悪くなってしまう。

問題の原因は、音量の違いが録音レベルに起因するのか、それとも喋り方・喋る内容に起因するのかを判別できないところにある。あるファイルのRMS値が小さかった場合、それがその日の体調やマイクとの距離や録音機材の設定によるものなのか、それとも意図的に小さく喋ったものであるのかは容易には判別できそうもない。それなりに高度な解析が必要になると思われる。

しかし希望はある。今手元にある音声ファイルの音量は、全くランダムというわけではない。数百から千程度は一度に同じ状況で収録しているので、それらのファイルの中で大きく録音レベルが変わることはほとんど無い。

状況を確認するために、音声ファイルごとの音量(RMS)を出力するプログラムをC++で作成した。wave_rms.cppはカレントディレクトリ以下にある.wavファイルの有音部分のRMSを求め、標準出力へ出力する。

手元のファイルのうち、頭の数千をこのプログラムにかけ、結果をグラフ化したのが以下。横軸がファイル名、縦軸が音量[db]である。

音声ファイル(横)と音量(縦)のグラフ(調整前):

20100114_voice_levels.jpg

ファイル名先頭のアルファベットは喋っている人の違いと思っていただきたい。

bの人の途中からガクンと音量が上がっていることが分かる。bの後半、c、dはほぼ同じくらいの録音レベル。e、f、iになるとまた下がる。fはe、iに比べてあまり音量差が無く、それほど小さくならないことも分かる。

結局、この録音レベルが異なる領域ごとに個別の設定で音量を整えることで、均一化させることにした。

以下は調整後との比較。

音声ファイル(横)と音量(縦)のグラフ(調整後):

20100114_voice_levels2.jpg

てきとー。

2010-01-05

結局片付かなかった部屋

正月中に一切片付けられなかったので、散らかる一方。週末になんとかするかなぁ。そういや来月からゴミボックスが廃止されるんだよね。それまでにゴミ袋を買っておかないと。

2010-01-05

Android用カレンダー

HT-03A標準の(Android1.6標準の?)カレンダーアプリはなんでこんなにつまらない出来なんだろう。Google Calendarと同期しているのは便利で良いんだけど、月ビューがもう少し見やすくても罰は当たらないと思うんだけど。これだと予定の有無くらいしか分からない。なんかアプリを探さないといけないのかなぁ。面倒くさいなぁ。と思いながらなかなかその気になれないでいる今日この頃。

2010-01-03

Android用RSSリーダー

NewsRobを入れてみた。Google Readerと同期するフィードリーダー。

素晴らしいのは、Feed内容だけでなくリンク先のWebページ本文も取り込んで表示してくれるところ。Google Readerなんかで読んでいるとFeed内容に記事の全文が入っていない場合、いちいちリンク先を開かなければならない。だけどこれならFeedごとの設定で、リンク先のWebページ本文までダウンロードするかどうかを指定できる。Webページは更新チェックの時にまとめてダウンロードされてSDカードに保存されるので、閲覧時は記事一つごとにいちいち待たされることがない。当然オフラインでも閲覧可能だ。素晴らしい。

2009-12-26

録画用PC

長年使っていたCanopus MTV2000が壊れた。横方向にノイズが走るというか、ぶれるというか、とにかく見るに堪えない。チャネル設定で周波数を微妙にずらしてやると見られるようになることもあるのだけど、しばらく経つとまたずらしてやらないとダメになる。しばらく使っていなかったビデオデッキをアンテナにつないで確認したら正しく映ったので、やはりMTV2000が壊れたのだろう。買ったのは2002年12月のようだから、7年使っていたことになる。

というわけで、今日は代わりの録画用PCを組んだ。

M/B Intel DQ45CB(Q45チップセット)
CPU Intel Pentium Dual Core E6300(2.8GHz)
MEM W2U800CQ-1GLZJ (DDR2 PC2-6400 1GB 2枚組)
HDD WD10EADS-M2B (1TB SATA300)
電源 EG-400PG
ケース fit ST-565T-B (MicroATX)
DVD Pioneer DVR-S16J
OS Microsoft Windows7 Home Premium

肝心のチューナーカードは最近話題のアレです。

DQ45CBは消費電力面で良さそうだったので選んだ。ググってみると色々面倒なことがあったらしいのだけど、すぐにCD経由でBIOSアップデートして特に問題なかった。AMTのために電源をつなぐとちょっと独特の動きをする。

ケースのfit ST-565T-Bはコンパクトさとメンテナンス性、拡張性のバランスが良くて気に入った。でもあまり大きなカードを挿すわけじゃないから、ちょっと勿体なかったかも。

2009-12-23

年末

今年も残すところ一週間あまり。

今日は休みだったので家事などを少々。シンクの排水口の網が詰まって水が流れにくくなっていたので歯ブラシで掃除したり。日用品の買い出しに行ったり。

あとはゆっくりと考え事をして過ごす。