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
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
280
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
400
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
320
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
290
生成AI×AWS CDK×AWS FISで"振り返れる"ミニGameDayをつくろう
yoshimi0227
1
400
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
3
4.2k
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.6k
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
14
2.1k
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
420
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
410
穢れた技術選定について
watany
17
5.6k
Network Firewallやっていき!
news_it_enj
0
170
Featured
See All Featured
A Soul's Torment
seathinner
6
3.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Accessibility Awareness
sabderemane
1
160
ラッコキーワード サービス紹介資料
rakko
1
3.9M
Statistics for Hackers
jakevdp
799
230k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
420
Raft: Consensus for Rubyists
vanstee
141
7.6k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
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ベンチャー業界に他に⾳声信号処理実装関係者いないですかね