Skip to main content

ログ取得ツール (移転先予定地)

君のMacは歌えるか

Macにはsayというコマンドがあって、喋れる。いや昔からUnixにはsayがあって、英語をなんとなく喋れていたんだけど、いつの間にか日本語も喋れるようになっていた。これだから最近のUnixは…

  • say -v Kyoko “渡辺です。いつもお世話になっております。”

[audio mp3="/wordpress/wp-content/uploads/2018/01/wtnb.mp3"][/audio]

そして、Unixには昔からsoxというプログラムがあって、これが音声ファイルに色々なフィルタを噛ませることができる。例えば音声ファイルのピッチ(音程)を変更することもできる。

sayが出す音声は音楽ではなく人が喋るイントネーションに合わせようとするので、そのままつなげても歌になるわけではないし、どのくらい音程を動かせば正しくなるのか分からない、というところ。pitch detectionのアルゴリズムは色々あるようだが、手軽に使えるものはないだろうか…

と思っていたのだが、実はGoogleがREAPERというプログラムを数年前に公開していて、音声ファイルの音程を判定することができる。組み合わせれば、うちのMac(Linuxでもいいけど)は生まれながらにして歌えるのでは?

[audio mp3="/wordpress/wp-content/uploads/2018/01/frog.mp3"][/audio]

まだ、歌えないみたいです…

(追記) 2018/01/23

ちゃんと歌えていない原因について。歌詞を同じ(例えば「あ」のみ)とかにすると、それなりに音程が合って聞こえる。REAPERがsayの出力の音程を正しく検出できていない(もしくは、出力のパースが間違っている)のが原因かな?

(追記) 2018/01/27

REAPERの出力のP:は音声ファイル全体のpitchを示すものではないのかも。F0ファイルの中身を見ると少しは良さそう。また、Pythonで使えるaubioというモジュールがあって、pip install aubioで使える。この中にpitch detectionの機能があるので、そちらを使ってもいいと思う。