2月28日 AITC オープンラボ
第5回 機械学習勉強会
音の機械学習~入門編
に行ってきた!ので内容メモメモ
■AITCについて
■音の機械学習 前置き
・USB内のファイルをコピー
・dockerイメージ
前置き
・自己紹介
動画像の機械学習→音声認識
音響情報処理:超音波スピーカー
https://www.youtube.com/watch?v=2Hx881WFUsA
・音響分野の需要拡大
Amazon エコー
・音声認識以外
感情認識 API
声紋認証
→最近は音声認識のほうが手早い
イベントで知識を得る
2月で69件、画像81件、音声21件
→AI全般
・音響エンジニア界隈の現状
需要の拡大に対して情報が少数
オープンコミュニティ・勉強会はほぼない
日本のベンチマークは、学術的・お金を払うようなもの
・一週間ばかりニューヨークに取材した
→知っている人は知っているが
知らない人はまったくしらない(音素)
・音の機械学習の基礎
・音の機械学習とは
1.しくみ
2.特徴量
・音声認識の仕組み
画像のように、ラベルが1個かえるのではない
音声(マイク入力)
特徴量抽出 次元統一、次元圧縮
音素推定 特徴量の音素を推定
発話推定 単語の尤度を推定
文脈推定 文脈から正しい文を推定
演習1:
基礎から音を機械学習で使用する方法を学ぶ
演習2:
仕組みはともかくサービスを組み入れる
・音声の特徴量
WAV(わぶ)ファイル:時間波形
パターンマッチングでは見つからなくなる
→スペクトルに分解
フーリエ変換する:周波数軸に変換する
何の音素か推定可能になる
人間の耳に注目:低い周波数には敏感
→メルフィルタバンク
低いほうは細かく、高いほうは大雑把に周波数を変形する
→MFCC(メル周波数ケプルトラム係数)
メルフィルタバンクをかけたスペクトルを離散コサイン変換
一般的に音声認識で用いられる特徴量
※その他
感情、音圧
これを取ってくるOSSがある
音素推定
・音素・発音を記号で表したもの
GMM(がうしあん みくすちゃー もでる)
→多クラス分類
・音素だけではなく、様々なクラスタリングタスクに応用できる
推定クラス:登録した家族の声→個人認識
正常・異常時の音声
演習1
Pythonを使って特徴量抽出、音素推定
numpy
scipy.io.wavfile 音声ファイル読み込み
scikits.talkbox 特徴量抽出
Pyaudio マイクからの動的入力ライブラリ
dockerにはいって、
python audio.py input.wav
精度が悪かったら録音しなおしてね!
・ソースコード
import
特徴量抽出 MFCCを求める scikits.talkbox
機械学習
認識部分
モデル(あモデル、いモデル・・)
尤度計算
・音声の入力
scipy.io.read(input_file)
・MFCC
scikits.talkbox
→pythonでなくても、とにかくMFCCが出れば、どうにかなりそう・・
■音のOSS
・音に関するソフト(OSS)
音声認識をサービスに組み込みたい
julius(じゅりあす)
・音の分析がしたい
SPWAVE:スペクトルを出す。声紋認証のグラフなど。フーリエ変換も
声紋:強弱を色で表す。周波数をたてに
OpenSmile:感情量、商用だとお金かかる?
Praat :感情
・自分で音声認識モデルを作りたい
HTK
kaldi(かるでぃ)
音素推定、単語、文脈推定:敷居高い→音に入りにくい
・今日から使える
じゅりあす
UI部分が用意
自分で作ったモデルもOK
マルチプラットフォーム
GMM/HMM DNN/HMMの2モデル
■演習2
・文法が決まった発話
grammar-kit-
電話音声:音声認識 コールセンター
辞書に入っていないと、とってくれない
追加すると・・・
認識してくれる
第5回 機械学習勉強会
音の機械学習~入門編
に行ってきた!ので内容メモメモ
■AITCについて
■音の機械学習 前置き
・USB内のファイルをコピー
・dockerイメージ
前置き
・自己紹介
動画像の機械学習→音声認識
音響情報処理:超音波スピーカー
https://www.youtube.com/watch?v=2Hx881WFUsA
・音響分野の需要拡大
Amazon エコー
・音声認識以外
感情認識 API
声紋認証
→最近は音声認識のほうが手早い
イベントで知識を得る
2月で69件、画像81件、音声21件
→AI全般
・音響エンジニア界隈の現状
需要の拡大に対して情報が少数
オープンコミュニティ・勉強会はほぼない
日本のベンチマークは、学術的・お金を払うようなもの
・一週間ばかりニューヨークに取材した
→知っている人は知っているが
知らない人はまったくしらない(音素)
・音の機械学習の基礎
・音の機械学習とは
1.しくみ
2.特徴量
・音声認識の仕組み
画像のように、ラベルが1個かえるのではない
音声(マイク入力)
特徴量抽出 次元統一、次元圧縮
音素推定 特徴量の音素を推定
発話推定 単語の尤度を推定
文脈推定 文脈から正しい文を推定
演習1:
基礎から音を機械学習で使用する方法を学ぶ
演習2:
仕組みはともかくサービスを組み入れる
・音声の特徴量
WAV(わぶ)ファイル:時間波形
パターンマッチングでは見つからなくなる
→スペクトルに分解
フーリエ変換する:周波数軸に変換する
何の音素か推定可能になる
人間の耳に注目:低い周波数には敏感
→メルフィルタバンク
低いほうは細かく、高いほうは大雑把に周波数を変形する
→MFCC(メル周波数ケプルトラム係数)
メルフィルタバンクをかけたスペクトルを離散コサイン変換
一般的に音声認識で用いられる特徴量
※その他
感情、音圧
これを取ってくるOSSがある
音素推定
・音素・発音を記号で表したもの
GMM(がうしあん みくすちゃー もでる)
→多クラス分類
・音素だけではなく、様々なクラスタリングタスクに応用できる
推定クラス:登録した家族の声→個人認識
正常・異常時の音声
演習1
Pythonを使って特徴量抽出、音素推定
numpy
scipy.io.wavfile 音声ファイル読み込み
scikits.talkbox 特徴量抽出
Pyaudio マイクからの動的入力ライブラリ
dockerにはいって、
python audio.py input.wav
精度が悪かったら録音しなおしてね!
・ソースコード
import
特徴量抽出 MFCCを求める scikits.talkbox
機械学習
認識部分
モデル(あモデル、いモデル・・)
尤度計算
・音声の入力
scipy.io.read(input_file)
・MFCC
scikits.talkbox
→pythonでなくても、とにかくMFCCが出れば、どうにかなりそう・・
■音のOSS
・音に関するソフト(OSS)
音声認識をサービスに組み込みたい
julius(じゅりあす)
・音の分析がしたい
SPWAVE:スペクトルを出す。声紋認証のグラフなど。フーリエ変換も
声紋:強弱を色で表す。周波数をたてに
OpenSmile:感情量、商用だとお金かかる?
Praat :感情
・自分で音声認識モデルを作りたい
HTK
kaldi(かるでぃ)
音素推定、単語、文脈推定:敷居高い→音に入りにくい
・今日から使える
じゅりあす
UI部分が用意
自分で作ったモデルもOK
マルチプラットフォーム
GMM/HMM DNN/HMMの2モデル
■演習2
・文法が決まった発話
grammar-kit-
電話音声:音声認識 コールセンター
辞書に入っていないと、とってくれない
追加すると・・・
認識してくれる
Google検索で、「920MHz無線モジュール arduino」で、このブログに来た人がいるみたいなんだけど・・
ごめん、その情報を載せてないね、ちょっと知っていることを
書いてみる(思いこみなど、不正確な部分あり)
■どういう構成&インターフェースをとるのか
サブギガ(920MHz帯のこと)に限らず、通信モジュールには、
UARTの口があることが多い。
なので、Arduinoに限らず、マイコンと通信モジュールを接続する
場合には、マイコン側でシリアル通信を行い、TX,RXを、
通信モジュールのUARTの口(TX,RX)に接続する。
通信内容は、ATコマンドを受け付けたり、独自プロトコルだったり
様々なので、マニュアルをみよう!
ただし、ArduinoとインタープランのIM920との場合は、
上記接続の他に、シールドがある
秋月で売ってる
Arduino UNO R3対応 IM315RX・IM315TRX・IM920用 IM無線シールド
http://akizukidenshi.com/catalog/g/gM-10144/
■通信モジュールについて
インタープランのIM920のほか、
ローム
http://www.rohm.co.jp/web/japan/news-detail?news-title=2015-01-07_ad&defaultGroupId=false
や
村田
http://www.murata.com/ja-jp/about/newsroom/news/product/wireless/2015/0217
富士通
http://www.fujitsu.com/jp/group/fcl/products/pdut/detail/1186515/wirelessmodule/MBH7SLZ01
沖
https://www.oki.com/jp/920M/mh/module/
などが出している。どれもUARTには対応しているので、上記の方法で通信できる
ただし、920の仕様には、WI-SUNとLoraがある。どちらだかは、
それぞれのメーカーのサイトなり、営業さんに聞いてね!
(ファームウェア書き換えで対応できるかも?)
■マイコン側について
UARTは、事実上、シリアル通信できればよい。
PICだと、USART,EUSARTになっているものもあるけど、
これらはUART通信できる。
シリアル通信を行う場合、USBとの関係において、2つのケースがあるので注意
USBとデジタルピンのTX,RXがつながっている
USBと、シリアル通信は独立。TX,RXはつながっていない
これ、arduinoの中でも異なる
https://trac.switch-science.com/wiki/Guide/ArduinoLeonardo
を参照のこと
つながっていてもいなくても、とにかくTX,RXピン(Arduinoの場合、0番、1番)に、
通信モジュールのTX,RXを接続して
(通信モジュールとマイコンはそのままつないでOK、
通信モジュール同士を接続して通信する場合は、自分のTXに相手のRXをつなぐ)
そこへ、シリアルで書きこむ感じ・・
わかりましたあ?
ごめん、その情報を載せてないね、ちょっと知っていることを
書いてみる(思いこみなど、不正確な部分あり)
■どういう構成&インターフェースをとるのか
サブギガ(920MHz帯のこと)に限らず、通信モジュールには、
UARTの口があることが多い。
なので、Arduinoに限らず、マイコンと通信モジュールを接続する
場合には、マイコン側でシリアル通信を行い、TX,RXを、
通信モジュールのUARTの口(TX,RX)に接続する。
通信内容は、ATコマンドを受け付けたり、独自プロトコルだったり
様々なので、マニュアルをみよう!
ただし、ArduinoとインタープランのIM920との場合は、
上記接続の他に、シールドがある
秋月で売ってる
Arduino UNO R3対応 IM315RX・IM315TRX・IM920用 IM無線シールド
http://akizukidenshi.com/catalog/g/gM-10144/
■通信モジュールについて
インタープランのIM920のほか、
ローム
http://www.rohm.co.jp/web/japan/news-detail?news-title=2015-01-07_ad&defaultGroupId=false
や
村田
http://www.murata.com/ja-jp/about/newsroom/news/product/wireless/2015/0217
富士通
http://www.fujitsu.com/jp/group/fcl/products/pdut/detail/1186515/wirelessmodule/MBH7SLZ01
沖
https://www.oki.com/jp/920M/mh/module/
などが出している。どれもUARTには対応しているので、上記の方法で通信できる
ただし、920の仕様には、WI-SUNとLoraがある。どちらだかは、
それぞれのメーカーのサイトなり、営業さんに聞いてね!
(ファームウェア書き換えで対応できるかも?)
■マイコン側について
UARTは、事実上、シリアル通信できればよい。
PICだと、USART,EUSARTになっているものもあるけど、
これらはUART通信できる。
シリアル通信を行う場合、USBとの関係において、2つのケースがあるので注意
USBとデジタルピンのTX,RXがつながっている
USBと、シリアル通信は独立。TX,RXはつながっていない
これ、arduinoの中でも異なる
https://trac.switch-science.com/wiki/Guide/ArduinoLeonardo
を参照のこと
つながっていてもいなくても、とにかくTX,RXピン(Arduinoの場合、0番、1番)に、
通信モジュールのTX,RXを接続して
(通信モジュールとマイコンはそのままつないでOK、
通信モジュール同士を接続して通信する場合は、自分のTXに相手のRXをつなぐ)
そこへ、シリアルで書きこむ感じ・・
わかりましたあ?