Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BONXを支える技術:発話区間検出(VAD)の話/Akerun & BONX Tech Talk
Search
shunsukeaihara
April 26, 2016
Technology
7.8k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BONXを支える技術:発話区間検出(VAD)の話/Akerun & BONX Tech Talk
shunsukeaihara
April 26, 2016
More Decks by shunsukeaihara
See All by shunsukeaihara
Goのnet.TCPConnの話/shibuya.go01
shunsukeaihara
3
880
Norikra in Gunosy Network Ads@Norikra meetup #2
shunsukeaihara
1
6.1k
LevelDB on S3 As A KVS
shunsukeaihara
1
2.9k
色恒常性仮説に基づく色補正ライブラリcolorcorrect / 2015-01-31-kantocv27
shunsukeaihara
3
2.6k
Sparkによる分散処理 / 2015-01-16 PyData.Tokyo#3
shunsukeaihara
11
3.6k
ゼロから始めた Gunosyアドサーバ開発運用記 / 2014-12-16-dots
shunsukeaihara
6
1.2k
Gunosy.Go#5 index/io/log
shunsukeaihara
0
200
Gunosy.go#2 package/compress
shunsukeaihara
0
140
Other Decks in Technology
See All in Technology
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
SREとQA 二人三脚で進めるSLO運用/sre-qa-slo
sugitak
0
620
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
430
ガバナンスの「ちょうどいい落とし所」を探れ!開発スピードを妨げない運用判断の勘所 / SRE NEXT 2026
genda
1
150
あなたの『Site』はどこですか? — xREという考え方
miyamu
0
1.2k
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
370
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
2
430
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
1
120
しくみを学んで使いこなそう GitHub Copilot app
torumakabe
2
250
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
150
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
220
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
How to make the Groovebox
asonas
2
2.3k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
BBQ
matthewcrist
89
10k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
GraphQLとの向き合い方2022年版
quramy
50
15k
The SEO identity crisis: Don't let AI make you average
varn
0
510
Transcript
2016/04/26 shunsukeaihara BONXを⽀える技術: 発話区間検出(VAD)の話
⾃⼰紹介 • 粟飯原俊介(@shunsukeaihara) • http://argmax.jp • 技術顧問 • Gunosy, MNU
• フリーランス • ⾃然⾔語処理/画像処理/⾳声信号処理/分散処理系の開発・コンサル • Webシステム/IoTデバイス/データ分析システムの開発/BizDev • Bonxではサーバ(VoIP周り)開発とクライアント側⾳声処理系を担当
(承前)IoTにおける⾳声信号処理 ⼊出⼒に制限が有ることが多いIoTシステムにおいて, ⾳声インターフェイス(Digital Voice Assistant)が注⽬されており, ⾳声処理に関する周辺技術の重要が⾼まっています ボイスコマンド 音声対話 音源定位・分離 環境音認識
音声認識 話者識別
発話区間検出とは Voice Activity Detection(VAD)
発話区間検出とは 与えられた⾳声データから, ⼈間が発話している部分のみを抽出する技術. ⾳声認識能向 上のための前処理や, ⾳声通信における通信削減/⾳声品質向上などに利⽤されています 発話区間 発話区間 ⾮発話区間 ⾮発話区間
⾮発話区間
発話区間検出の難しさ ⼀⾒簡単そうな発話区間検出も, 様々な環境・様々なマイクで安定した動作を実現しよ うとすると, 複数の問題を乗り越える適応的なアルゴリズムが必要になります 環境ノイズの⼤きさ 環境ノイズの多様性 ⾳質・⾳量の違い 背景ノイズがうるさい場合で も,
背景ノイズを無視して発 話がない場合は⾮発話としな ければいけない ⾮定常的な環境⾳や, 突発⾳, テレビや移動等による環境ノ イズの変化に追随して, 環境 ⾳と発話を切り分けなければ いけない ⼈毎の声の差・機種毎のマイ ク・デバイスの⾳の差・サウ ンドデバイスの初期化毎の⾳ 量の差を吸収
発話区間検出の要素技術 発話/⾮発話判定 概要 ⼿法(⼀例) 背景雑⾳と⼈間の発話が混ざった 信号から, ⼈間の発話が含まれてい る区間のみを発話区間として判定 • Spectral Entropy
• Long-Term Spectral Divergence • Periodic Component to Aperiodic Component Ratio • ⾳声モデル(GMM等) ノイズ推定/ トラッキング ノイズ除去/ ⾳声強調 環境ノイズの変化や, ⾮定常的な雑 ⾳に対する頑健性を担保するため に, ⼈間の発話と背景雑⾳が混ざっ た⼊⼒信号から, 変化する背景雑⾳ をリアルタイムに推定 推定した雑⾳の情報を元に, 背景雑 ⾳と⼈間の発話が混ざった信号か ら, ⼈間の発話を抽出・強調する技 術 • Minimum Statistics • VAD Based (Soft / Hard Decision) Estimator • MMSE based Estimator • Spectrum Subtraction • Wiener filtering • MMSE-STSA • Joint-Map • Beamforming(マイクアレイ)
ノイズ推定〜発話判定処理の⼀例 発話⾳声と環境⾳(ノイズ)が重畳された信号からノイズを逐次的に推定し, ⼊⼒⾳声が環 境⾳なのか, 発話を含んでいるのかをオンラインで判定します ノイズプロファイルの初期値とし て, 先頭数百msの平均パワース ペクトルを利⽤ フレーム毎にパワースペクトルと
ノイズプロファイルを⽐較 逐次更新アルゴリズムにより, 発 話・ノイズ混じりの信号からノイ ズプロファイルを毎フレーム更新 更新 ⽐較
Bonxでの発話区間検出の流れ Bonxは独⾃のマルチマイクデバイスを利⽤しているため, デバイス上でマルチマイクを ⽤いた⾳声強調処理を実施し, 後段の処理をスマートフォンで実施しています ①⾳声強調(仮) ②ノイズ推定 • Bonxデバイスから の出⼒⾳声信号 ③ノイズ除去
④発話判定 input output • 前⽅マイクからの ⼊⼒信号 • 後⽅マイクからの ⼊⼒信号 • Bonxデバイスから の出⼒⾳声信号 • 推定したノイズプ ロファイル • ノイズ除去済みの ⾳声信号* • 推定したノイズプ ロファイル • 前⽅マイク側の信 号(⼝側の⾳)を強 調(Beamforming) した⾳声信号 • ⾳声信号に含まれる ノイズの推定値(ノイ ズプロファイル) • ノイズ除去済みの ⾳声信号 Bonxデバイス スマートフォン • 発話・⾮発話判定 結果 • ノイズ除去済みの ⾳声信号 *アルゴリズムによっては①の出⼒とノイズプロファイルを利⽤ ⾳ 量 の 正 規 化
デバイスとスマートフォンでの信号処理 ⾳声信号処理はリアルタイムでの計算が必要とされるため, スマートフォンアプリの中 に実装するためには計算の効率化とアルゴリズムの簡易さが求められます • 基本的にはC/C++での実装. AndroidではNDKを⽤いる • iOS: Accelerate Framework(vDSP)を利⽤
• Android: ARM系のSIMD拡張命令(NEON), DSP拡張命令を利⽤ • cpufeature.h • IoTハードウェアとの連携の場合は, ハードウェア側のDSPチップやSoCに機能を寄せ られないか検討する • 複数マイク(マイクアレイ)を⽤いる事で⾳質の向上を⾒込むことが出来る ⾼速な実装のために… デバイス側で出来ることはやろう
まとめ • 発話区間検出の概要と課題 • ロバストな発話区間検出に必要な要素技術 • ノイズ推定/トラッキング • ノイズ除去/⾳声強調 •
発話⾮発話判定 • IoTデバイスとスマートフォンで⾳声信号処理を実装するにあたって のTips • ITベンチャー業界に他に⾳声信号処理実装関係者いないですかね