20
Julia音声信号処理しばらくやってみた 山本りゅういち (@r9y9) 2015/04/25 JuliaTokyo #3 ノートブックとか: https ://github.com/r9y9/JuliaTokyo3

JuliaTokyo #3 Speech Signal Processing in Julia

Embed Size (px)

Citation preview

Page 1: JuliaTokyo #3 Speech Signal Processing in Julia

Juliaで音声信号処理をしばらくやってみた

山本りゅういち (@r9y9)

2015/04/25 JuliaTokyo #3

ノートブックとか: https://github.com/r9y9/JuliaTokyo3

Page 2: JuliaTokyo #3 Speech Signal Processing in Julia

自己紹介

• 山本りゅういち (@r9y9)

– 音声/音楽の信号処理、機械学習が好き

– コンピュータビジョン(初心者)

– Julia歴 8ヶ月くらい

• ブログ– LESS IS MORE http://r9y9.github.io/

Page 3: JuliaTokyo #3 Speech Signal Processing in Julia

今日の話

1. 音声信号処理に便利なパッケージの紹介

2. 僕が書いたパッケージの紹介

Page 4: JuliaTokyo #3 Speech Signal Processing in Julia

dancasimiro/WAV.jl

https://github.com/dancasimiro/WAV.jl

Page 5: JuliaTokyo #3 Speech Signal Processing in Julia

WAVファイルの読み込みusing WAVx, fs = wavread("test16k.wav")

Page 6: JuliaTokyo #3 Speech Signal Processing in Julia

JuliaDSP/DSP.jl

https://github.com/JuliaDSP/DSP.jl

Page 7: JuliaTokyo #3 Speech Signal Processing in Julia

スペクトログラム

Page 8: JuliaTokyo #3 Speech Signal Processing in Julia

バンドパスフィルタを掛ける

Page 9: JuliaTokyo #3 Speech Signal Processing in Julia

r9y9/WORLD.jl

https://github.com/r9y9/WORLD.jl

Page 10: JuliaTokyo #3 Speech Signal Processing in Julia

基本周波数 (Fundamental Frequency; F0)

Page 11: JuliaTokyo #3 Speech Signal Processing in Julia

スペクトル包絡 (Spectrum Envelope)

Page 12: JuliaTokyo #3 Speech Signal Processing in Julia

非周期性指標 (Aperiodicity ratio)

Page 13: JuliaTokyo #3 Speech Signal Processing in Julia

音声波形の再合成

※誤差は、分析条件、分析方法に依存します

Page 14: JuliaTokyo #3 Speech Signal Processing in Julia

WORLDの良いところ

• 高品質

– 業界デファクトのSTRAIGHTと同等

• BSDライセンス

• 高速

Page 15: JuliaTokyo #3 Speech Signal Processing in Julia

応用

Page 16: JuliaTokyo #3 Speech Signal Processing in Julia

Robust PCA による歌声分離

混合音のスペクトログラム

低ランク行列

スパースな行列 (歌声)

Huang, Po-Sen, et al. "Singing-voice separation from monaural recordings using robust principal component analysis." ICASSP 2012.

https://github.com/r9y9/RobustPCA.jl

Page 17: JuliaTokyo #3 Speech Signal Processing in Julia

統計的声質変換

http://r9y9.github.io/blog/2014/11/12/statistical-voice-conversion-code/

Page 18: JuliaTokyo #3 Speech Signal Processing in Julia

画像+スペクトログラム

Page 19: JuliaTokyo #3 Speech Signal Processing in Julia

所感

• 既存のCライブラリを活用したい場合にラッパーを書く

– ccallかんたん慣れれば簡単に感じます(当たり前

• Juliaは本当に速かった

– 例えば反復計算を含むアルゴリズムで、C実装のたかだか1.3倍程度

– https://github.com/r9y9/MelGeneralizedCepstrums.jl/blob/35feece580fb121803ed6ace7f80e6b694c9aa69/perf/mgcep.jl

• 音声信号処理全然できるよ!

• パッケージは必要なら自分で書く!!

Page 20: JuliaTokyo #3 Speech Signal Processing in Julia

僕が音声系で使う/作ったパッケージ一覧

• dancasimiro/WAVWAVファイルの読み込み

• JuliaDSP/DSP窓関数、スペクトログラム、STFT、デジタルフィルタ

• r9y9/WORLD音声分析・合成フレームワーク

• r9y9/MelGeneralizedCepstrumsメル一般化ケプストラム分析r9y9/SynthesisFiltersメル一般化ケプストラムからの波形合成

• r9y9/SPTK音声信号処理ツールキット

• r9y9/RobustPCAロバスト主成分分析(歌声分離へ応用)

• r9y9/REAPER基本周波数推定

• r9y9/VoiceConversion統計的声質変換

※発表中に紹介しなかったものも含む。僕が書いた公式パッケージは現在WORLDのみです。上から順に、汎用的(だと思います)