Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BONXを支える技術:発話区間検出(VAD)の話/Akerun & BONX Tech Talk

BONXを支える技術:発話区間検出(VAD)の話/Akerun & BONX Tech Talk

shunsukeaihara

April 26, 2016
Tweet

More Decks by shunsukeaihara

Other Decks in Technology

Transcript

  1. 2016/04/26
    shunsukeaihara
    BONXを⽀える技術:
    発話区間検出(VAD)の話

    View Slide

  2. ⾃⼰紹介
    •  粟飯原俊介(@shunsukeaihara)
    •  http://argmax.jp
    •  技術顧問
    •  Gunosy, MNU
    •  フリーランス
    •  ⾃然⾔語処理/画像処理/⾳声信号処理/分散処理系の開発・コンサル
    •  Webシステム/IoTデバイス/データ分析システムの開発/BizDev
    •  Bonxではサーバ(VoIP周り)開発とクライアント側⾳声処理系を担当

    View Slide

  3. (承前)IoTにおける⾳声信号処理
    ⼊出⼒に制限が有ることが多いIoTシステムにおいて, ⾳声インターフェイス(Digital
    Voice Assistant)が注⽬されており, ⾳声処理に関する周辺技術の重要が⾼まっています
    ボイスコマンド
    音声対話
    音源定位・分離
    環境音認識 音声認識
    話者識別

    View Slide

  4. 発話区間検出とは
    Voice Activity Detection(VAD)

    View Slide

  5. 発話区間検出とは
    与えられた⾳声データから, ⼈間が発話している部分のみを抽出する技術. ⾳声認識能向
    上のための前処理や, ⾳声通信における通信削減/⾳声品質向上などに利⽤されています
    発話区間 発話区間
    ⾮発話区間 ⾮発話区間
    ⾮発話区間

    View Slide

  6. 発話区間検出の難しさ
    ⼀⾒簡単そうな発話区間検出も, 様々な環境・様々なマイクで安定した動作を実現しよ
    うとすると, 複数の問題を乗り越える適応的なアルゴリズムが必要になります
    環境ノイズの⼤きさ 環境ノイズの多様性 ⾳質・⾳量の違い
    背景ノイズがうるさい場合で
    も, 背景ノイズを無視して発
    話がない場合は⾮発話としな
    ければいけない
    ⾮定常的な環境⾳や, 突発⾳,
    テレビや移動等による環境ノ
    イズの変化に追随して, 環境
    ⾳と発話を切り分けなければ
    いけない
    ⼈毎の声の差・機種毎のマイ
    ク・デバイスの⾳の差・サウ
    ンドデバイスの初期化毎の⾳
    量の差を吸収

    View Slide

  7. 発話区間検出の要素技術
    発話/⾮発話判定
    概要 ⼿法(⼀例)
    背景雑⾳と⼈間の発話が混ざった
    信号から, ⼈間の発話が含まれてい
    る区間のみを発話区間として判定
    • 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(マイクアレイ)

    View Slide

  8. ノイズ推定〜発話判定処理の⼀例
    発話⾳声と環境⾳(ノイズ)が重畳された信号からノイズを逐次的に推定し, ⼊⼒⾳声が環
    境⾳なのか, 発話を含んでいるのかをオンラインで判定します
    ノイズプロファイルの初期値とし
    て, 先頭数百msの平均パワース
    ペクトルを利⽤
    フレーム毎にパワースペクトルと
    ノイズプロファイルを⽐較
    逐次更新アルゴリズムにより, 発
    話・ノイズ混じりの信号からノイ
    ズプロファイルを毎フレーム更新
    更新 ⽐較

    View Slide

  9. Bonxでの発話区間検出の流れ
    Bonxは独⾃のマルチマイクデバイスを利⽤しているため, デバイス上でマルチマイクを
    ⽤いた⾳声強調処理を実施し, 後段の処理をスマートフォンで実施しています
    ①⾳声強調(仮)
    ②ノイズ推定
    • Bonxデバイスから
    の出⼒⾳声信号
    ③ノイズ除去
    ④発話判定
    input
    output
    • 前⽅マイクからの
    ⼊⼒信号
    • 後⽅マイクからの
    ⼊⼒信号
    • Bonxデバイスから
    の出⼒⾳声信号
    • 推定したノイズプ
    ロファイル
    • ノイズ除去済みの
    ⾳声信号*
    • 推定したノイズプ
    ロファイル
    • 前⽅マイク側の信
    号(⼝側の⾳)を強
    調(Beamforming)
    した⾳声信号
    • ⾳声信号に含まれる
    ノイズの推定値(ノイ
    ズプロファイル)
    • ノイズ除去済みの
    ⾳声信号
    Bonxデバイス スマートフォン
    • 発話・⾮発話判定
    結果
    • ノイズ除去済みの
    ⾳声信号
    *アルゴリズムによっては①の出⼒とノイズプロファイルを利⽤






    View Slide

  10. デバイスとスマートフォンでの信号処理
    ⾳声信号処理はリアルタイムでの計算が必要とされるため, スマートフォンアプリの中
    に実装するためには計算の効率化とアルゴリズムの簡易さが求められます
    •  基本的にはC/C++での実装. AndroidではNDKを⽤いる
    • iOS: Accelerate Framework(vDSP)を利⽤
    • Android: ARM系のSIMD拡張命令(NEON), DSP拡張命令を利⽤
    • cpufeature.h
    •  IoTハードウェアとの連携の場合は, ハードウェア側のDSPチップやSoCに機能を寄せ
    られないか検討する
    •  複数マイク(マイクアレイ)を⽤いる事で⾳質の向上を⾒込むことが出来る
    ⾼速な実装のために…
    デバイス側で出来ることはやろう

    View Slide

  11. まとめ
    •  発話区間検出の概要と課題
    •  ロバストな発話区間検出に必要な要素技術
    •  ノイズ推定/トラッキング
    •  ノイズ除去/⾳声強調
    •  発話⾮発話判定
    •  IoTデバイスとスマートフォンで⾳声信号処理を実装するにあたって
    のTips
    •  ITベンチャー業界に他に⾳声信号処理実装関係者いないですかね

    View Slide