Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
R で 音 声 解 析
K A S H I WA . R # 1 0
あ る 日 、 オ ラ クル が お り て き た …
• 以前のKashiwa.Rでピンクのマカロンプロットという
狂った発表をしてから、面白いネタを探していた…
R で 音 声 解 析 を して み よ う !
• でもどうやって…?
• パッケージを使おう
機能ごとのパッケージの一覧
とか欲しい。
タグとかつけたら便利そう。
パッケージ探しにぜひ使って欲しいページ
PA C K A G E S
• sound
• csound
• seewave
(fftw)
• audio
• tuneR
PA C K A G E S
• sound : wavファイルをいじれる
• seewave : I/O of sound wav, 周波数とか
• tuneR : wavファイルをいじれる seewaveが依存
gccのsndfileライブ...
soundはバイナリ直に読んでるらしい
1991. RIFF wave format by IBM and Microsoft
1秒間に何回サンプルするか。
44.1KHZで2-20000HZを再生できる
http://www.kk.iij4u.or.jp/~kondo/wave/
• 4GBまでしか作れないWAVはオワコン
• RにはWAM対応ライブラリがない(見つからない)のでチャンス
• tuneRはmp3は読める。多分。
Wikipedia
PA C K A G E S
• sound : wavファイルをいじれる
• seewave : I/O of sound wav, 周波数とか
• tuneR : wavファイルをいじれる seewaveが依存
gccのsndfileライブ...
playするためのコマンドが
動かせない!
S O U N D
S E E WAV E
T U N E R
無視!
フーリエ変換のライブラリを認識しない
play関数とかめっちゃ被ってMASKされる
インストール地獄 (R3.1.0)
なんとか...
W H AT S H O U L D I D O ?
• 声紋解析(スペクトログラム)
• 周期性(ピリオドグラム)
• 音声の分解(広帯域音など)
• 特徴量から機械学習へ
コ ピペ じ ゃ あ り ま せ ん !
機 械 学 習 に よ る 分 類 に 2 0 0 回 成 功 し ま し た !
後から気付きましたがFさんがやってらっしゃった。
詳しくは脅威のアニオタ社会復帰への道ブログへ
R で や って み る
Sound
tuneR
こ こ で P Y T H O N
多 分 同 一
パ ワ ースペ ク トル
• フーリエ変換の絶対値の二乗でエネルギーを計算
• この周波数がよくきこえる(ざっくり
f <- fft(sound(a))
p <- (Re(f) ** 2 + Im(f) ** 2)
x <- c(1:lengt...
• 音声の特徴をとってくる
• 平均、分散、パワースペクトル、周期などを特徴量と
して機械学習を行う
• 今回はSVMを使う
猫 と 犬 の 声
waveフォーマットの中でもuncompressd PCMとIEEE_float
waveフォーマットしか対応していない。多分どちらも。
開けないのでバイナリ見てみたらfmt codeが未対応(0x0001,
0x0002し...
C AT 6 V S D O G 6
? ? ? C AT O R D O G ? ? ?
• 可変長部分(2kHz以下)を
抽出
• 50分割して平均を取る
• 猫1 / 犬-1と印をつける
• library(e1071)
• svm(Species ~., data=data,
type=“C-classification”,
...
猫
犬
かろうじて猫?
L E T ’ S S V M … . ! ! ! ! !
一番猫っぽい
一番犬っぽい
Thank you for your listening!
お ま け
Upcoming SlideShare
Loading in …5
×

Kashiwa.r.10

1,063 views

Published on

Rによる音声解析@Kashiwa.R


結局最後の未知データは猫の鳴き声でした!

Published in: Data & Analytics
  • Be the first to comment

Kashiwa.r.10

  1. 1. R で 音 声 解 析 K A S H I WA . R # 1 0
  2. 2. あ る 日 、 オ ラ クル が お り て き た … • 以前のKashiwa.Rでピンクのマカロンプロットという 狂った発表をしてから、面白いネタを探していた…
  3. 3. R で 音 声 解 析 を して み よ う ! • でもどうやって…? • パッケージを使おう 機能ごとのパッケージの一覧 とか欲しい。 タグとかつけたら便利そう。
  4. 4. パッケージ探しにぜひ使って欲しいページ
  5. 5. PA C K A G E S • sound • csound • seewave (fftw) • audio • tuneR
  6. 6. PA C K A G E S • sound : wavファイルをいじれる • seewave : I/O of sound wav, 周波数とか • tuneR : wavファイルをいじれる seewaveが依存 gccのsndfileライブラリーのSndfileHandleクラスを使うらしい seewaveは.soを使うのでmac OSXの人はバイナリを落としましょう ライブラリの嬌声が聞こえる…
  7. 7. soundはバイナリ直に読んでるらしい
  8. 8. 1991. RIFF wave format by IBM and Microsoft 1秒間に何回サンプルするか。 44.1KHZで2-20000HZを再生できる http://www.kk.iij4u.or.jp/~kondo/wave/
  9. 9. • 4GBまでしか作れないWAVはオワコン • RにはWAM対応ライブラリがない(見つからない)のでチャンス • tuneRはmp3は読める。多分。 Wikipedia
  10. 10. PA C K A G E S • sound : wavファイルをいじれる • seewave : I/O of sound wav, 周波数とか • tuneR : wavファイルをいじれる seewaveが依存 gccのsndfileライブラリーのSndfileHandleクラスを使うらしい seewaveは.soを使うのでmac OSXの人はバイナリを落としましょう ライブラリの嬌声が聞こえる…
  11. 11. playするためのコマンドが 動かせない! S O U N D S E E WAV E T U N E R 無視! フーリエ変換のライブラリを認識しない play関数とかめっちゃ被ってMASKされる インストール地獄 (R3.1.0) なんとかした! 無視!
  12. 12. W H AT S H O U L D I D O ? • 声紋解析(スペクトログラム) • 周期性(ピリオドグラム) • 音声の分解(広帯域音など) • 特徴量から機械学習へ
  13. 13. コ ピペ じ ゃ あ り ま せ ん ! 機 械 学 習 に よ る 分 類 に 2 0 0 回 成 功 し ま し た ! 後から気付きましたがFさんがやってらっしゃった。 詳しくは脅威のアニオタ社会復帰への道ブログへ
  14. 14. R で や って み る Sound tuneR
  15. 15. こ こ で P Y T H O N
  16. 16. 多 分 同 一
  17. 17. パ ワ ースペ ク トル • フーリエ変換の絶対値の二乗でエネルギーを計算 • この周波数がよくきこえる(ざっくり f <- fft(sound(a)) p <- (Re(f) ** 2 + Im(f) ** 2) x <- c(1:length(p)) plot((x/(length(x)/rate(a)), p, type=“l”, xlim=c(0, xmax/(length(x)/rate(a))), log=“y”)
  18. 18. • 音声の特徴をとってくる • 平均、分散、パワースペクトル、周期などを特徴量と して機械学習を行う • 今回はSVMを使う
  19. 19. 猫 と 犬 の 声 waveフォーマットの中でもuncompressd PCMとIEEE_float waveフォーマットしか対応していない。多分どちらも。 開けないのでバイナリ見てみたらfmt codeが未対応(0x0001, 0x0002しか無理)でした コレオッサンノコエジャナイヨネ…
  20. 20. C AT 6 V S D O G 6
  21. 21. ? ? ? C AT O R D O G ? ? ?
  22. 22. • 可変長部分(2kHz以下)を 抽出 • 50分割して平均を取る • 猫1 / 犬-1と印をつける • library(e1071) • svm(Species ~., data=data, type=“C-classification”, cost=10, kernel=“linear”, scale=F, tolerance=1e-5)
  23. 23. 猫 犬 かろうじて猫? L E T ’ S S V M … . ! ! ! ! !
  24. 24. 一番猫っぽい 一番犬っぽい
  25. 25. Thank you for your listening!
  26. 26. お ま け

×