JuliaTokyo #3 Speech Signal Processing in Julia

Preview:

Citation preview

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

山本りゅういち (@r9y9)

2015/04/25 JuliaTokyo #3

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

自己紹介

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

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

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

– Julia歴 8ヶ月くらい

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

今日の話

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

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

dancasimiro/WAV.jl

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

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

JuliaDSP/DSP.jl

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

スペクトログラム

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

r9y9/WORLD.jl

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

基本周波数 (Fundamental Frequency; F0)

スペクトル包絡 (Spectrum Envelope)

非周期性指標 (Aperiodicity ratio)

音声波形の再合成

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

WORLDの良いところ

• 高品質

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

• BSDライセンス

• 高速

応用

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

統計的声質変換

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

画像+スペクトログラム

所感

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

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

• Juliaは本当に速かった

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

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

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

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

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

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

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

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

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

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

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

• r9y9/REAPER基本周波数推定

• r9y9/VoiceConversion統計的声質変換

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

Recommended