JuliaTokyo #3 Speech Signal Processing in Julia
JuliaTokyo #3でLT発表してきました。前回のJuliaTokyo #2でも発表したので、二回目でした。
スライド
コード
https://github.com/r9y9/JuliaTokyo3
三行まとめ
発表の内容を三行でまとめると、
- 音声ファイルの読み込み(or 書き込み)は[WAV.jl]((https://github.com/dancasimiro/WAV.jl)を使おう
- 基本的なデジタル信号処理は JuliaDSP/DSP.jl をチェック(※JuliaDSPにはウェーブレットとかもあるよ)
- 音声に特化した信号処理は、r9y9/WORLD.jl がオススメです
という感じです。
応用例として、歌声を分離する話(デモコード)、統計的声質変換(統計的声質変換クッソムズすぎワロタ(チュートリアル編) - LESS IS MORE)、画像をスペクトログラムに足しこむ話とか、さっと紹介しました。
補足
僕が使う/作ったパッケージを、あとで見返せるように最後のスライドにまとめておいたのですが、改めてここで整理しておきます。
- dancasimiro/WAV WAVファイルの読み込み
- JuliaDSP/DSP 窓関数、スペクトログラム、デジタルフィルタ
- r9y9/WORLD 音声分析・合成フレームワーク
- r9y9/MelGeneralizedCepstrums メル一般化ケプストラム分析
- r9y9/SynthesisFilters メル一般化ケプストラムからの波形合成
- r9y9/SPTK 音声信号処理ツールキット
- r9y9/RobustPCA ロバスト主成分分析(歌声分離へ応用)
- r9y9/REAPER 基本周波数推定
- r9y9/VoiceConversion 統計的声質変換
上から順に、汎用的かなーと思います1。僕が書いたパッケージの中では、WORLDのみ公式パッケージにしています。理由は単純で、その他のパッケージはあまりユーザがいないだろうなーと思ったからです。かなりマニアックであったり、今後の方針が決まってなかったり(ごめんなさい)、応用的過ぎて全然汎用的でなかったり。WORLDは自信を持ってオススメできますので、Juliaで音声信号処理をやってみようかなと思った方は、ぜひお試しください。
ざっくり感想
- #Juliaわからん 本当に素晴らしいと思うので、僕も積極的に #Juliaわからん とつぶやいていこうと思います(詳しくは @chezou さんの記事をどうぞ #JuliaTokyo で #juliaわからん という雑なレポジトリを立てた話をしたら julia.tokyo ができてた - once upon a time,)。僕は、Julia に Theano が欲しいです。
T.grad
強力すぎる ccall
かんたんとか言いましたが、ミスった書き方をしたときのエラーメッセージはあまり親切ではないので、つまずきやすいかも。僕は気合で何とかしています。- Julia遅いんだけど???と言われたら、@bicycle1885 さんの What’s wrong with this Julia? を投げつけようと思います。
- かなり聴衆が限定的になってしまう話をしてしまったので、次発表するならJulia 言語自体の話をしようかなと思いました
最後に
@soramiさんを筆頭とする運営の方々、本当にありがとうございました!楽しかったです。
-
とスライドに書いたけど、考えなおすと、僕が思う品質の高さ順、の方が正確です、失礼しました。MelGeneneralizedCepstrumsは一番気合入れて書いたけど、ユーザーがいるかといったらいないし、RobustPCAはさっと書いただけだけど、アルゴリズムとしては汎用的だし。またRobustPCAだけ毛色が違いますが、応用例で紹介したのでリストに入れておきました。 ↩︎