Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
890
Norikra in Gunosy Network Ads@Norikra meetup #2
shunsukeaihara
1
6.1k
LevelDB on S3 As A KVS
shunsukeaihara
1
3k
色恒常性仮説に基づく色補正ライブラリ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
150
Other Decks in Technology
See All in Technology
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
330
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
580
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
150
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
480
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
7
2.5k
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
380
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
3.3k
会社説明資料
persolserverworks
0
9.7k
分析AIエージェントを育てる、動く環境を育てる
codatum
1
770
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
170
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
0
300
Getting Started with Google Antigravity
glaforge
0
140
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
4
530
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
We Have a Design System, Now What?
morganepeng
55
8.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
The browser strikes back
jonoalderson
0
1.8k
Why Our Code Smells
bkeepers
PRO
340
58k
Agile that works and the tools we love
rasmusluckow
331
22k
Being A Developer After 40
akosma
92
590k
Producing Creativity
orderedlist
PRO
348
41k
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ベンチャー業界に他に⾳声信号処理実装関係者いないですかね