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

音声異常検知をためしてみよう ~身近な音声を録音して、音声異常検知モデルにかけてみよう

Tasuku Hori
October 13, 2022

音声異常検知をためしてみよう ~身近な音声を録音して、音声異常検知モデルにかけてみよう

Tasuku Hori

October 13, 2022
Tweet

More Decks by Tasuku Hori

Other Decks in Technology

Transcript

  1. 音声異常検知で「死角」をなくせるか センサ 死角対策 カメラ △ 9軸センサ × ホイールローダ × LiDAR

    △ マイク ◦ カメラ/LiDARの死角 SLAM併用 はじめに (C)Tasuku Hori, EXA CORPORATION Japan, 2022 2
  2. 簡易環境デモ 《音源》 タミヤバギー 《音声異常検知》 Raspberry Pi4B/8GB ほぼリアルタイムでグラフ可視化 2秒毎に音声異常検知の結果である最新値を追加 縦軸:平均二乗誤差値(0に近いと正常) 横軸:時系列

    位置を 変化させる デモ動画リンクはQiita記事「 USBマイクをつけて音声異常検知をためそう」を参照のこと 《トレーニングデータ》 疑似エージェントなしの環境で360秒録音 1秒間隔で1秒音声データを録音 はじめに (C)Tasuku Hori, EXA CORPORATION Japan, 2022 3
  3. 音声 • 空気を震わせる波 • 音は「縦波」 • 固体中は剪断波という横波も混ざる場合も • 波の大きさ、音の粗密の変化を捉えたものが「音」 空気を震わせて遠方へ伝わっていく

    はじめに 入力 データ 入力データ(数値の配列)は 波形データをあらわす 空気の粗密 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 4
  4. デモ 構成 《録音》 PyAudio wave wav形式 ファイル wav形式 ファイル 1秒間隔で実行

    2秒間録音し wav形式ファイルとして保存 《音声異常検知》 wav形式 ファイル 2秒間隔で異常スコア取得 グラフに追加 librosa python_speech_features scipy.io.wav TensorFlow/Keras Flask 学習済み モデル 5世代分を スプール 最新の wav形式ファイルを取得 非同期 chart.js jQuery/Ajax 自律走行エージェント搭載時は ROSフレームワークモジュールと して配置 はじめに ※PC(Lenovo T14/Win10)でも動作する(要PortAudio) USBマイクはRaspberry Pi側の 電圧低下で機能しない場合が あるので非同期にしている (C)Tasuku Hori, EXA CORPORATION Japan, 2022 5
  5. 音声異常検知 構成 《音声異常検知》 特徴 抽出 分類器 音響 特徴量 入力 データ

    出力 データ wav形式 ファイル ログメル スペクトル メルフィルタ バンク 全結層×4 音響特徴量と 同型式の配列 異常スコア 算出 異常 スコア デモ実装: 学習済み モデル 音響特徴量と 出力データの平 均二乗誤差 0以上のfloat (数字が大きい ほど異常) デモ実装の場合Raspberry Pi前提のため 可能な限り分類器を低コストにする必要があった 特徴抽出にて 可能な限りサイズの小さい音響特徴量にしたい はじめに (C)Tasuku Hori, EXA CORPORATION Japan, 2022 6
  6. 分類器 構成 wav メ ル フ ィ ル タ バ

    ン ク 20 n (録音時間により伸縮) 全 結 合 層 n R e L U 10 全 結 合 層 R e L U 全 結 合 層 R e L U 全 結 合 層 R e L U 20 n (録音時間により伸縮) 平均二乗誤差(誤差関数)が0になるように機械学習 《特徴抽出》 《事前処理》 《入力層》 《隠れ層》 《出力層》 平 均 二 乗 誤 差 閾値 スコア (0以上) 《正常処理》 《異常処理》 [<] [≧] anormaly score 《分類器》 《隠れ層》 《音響特徴量》 入力データと出力データの 平均二乗誤差が0になるように学習 正常音データのみ学習データにすれば良い はじめに (C)Tasuku Hori, EXA CORPORATION Japan, 2022 7
  7. 既存研究における特徴抽出/分類器 想定環境 対象 特徴量 識別手法 一般 銃声 MFCC,パワー、スペクトル重心+△+△△ GMM 家屋など

    転倒音 Wavelet、ZCR HMM 一般 会話、叫び声、歩行、走行、ノック ZCR、LPC、LPCC、LFCC GMM 公共空間 銃声、悲鳴 MFCC、ZCR、スペクトル傾斜、自己相関など GMM 駅 暴力行為 F0、スペクトル傾斜 決定木+Dynamic Bayesian Network 家庭 ガラス音、転倒音など MFCC(segment)、パワー 多段階GMM 医療現場など 転倒音 音響イベントの長さとパワー、MFCC、Shock response spectrum(SRS) Gaussian 公共空間(駅) 爆発、銃声、悲鳴 MFCC、MPEG-7LLD 2段階HMM 公共空間(駅) 爆発、銃声、悲鳴 MFCC、MPEG-7LLD、TEO、イントネーション GMM 一般 悲鳴、銃声、爆発、ガラス音 △パワー、ZCR、Spectral flatness、ZCRなど ヒューリスティック 医療現場 転倒音 相対振幅、ピーク周波数 閾値 家庭、ATMなど 叫び声、火災報知器など MFCC、TEO、MPEG-7LLD、Wavelet packet HMM、GMMクラスタリング、SVM 公共空間 銃声、悲鳴、ガラス音 MFCC、MPEG-7LLD HMM 駅 サイレン、爆発など フィルタバンク OC-SVM 家庭 日常音中の稀なイベント MFCC、スペクトルフラックス→クラスタリング HMM モバイル 叫び声など MFCC GMM 公共空間 銃声、悲鳴 MFCC、パワーと△、△△ HMM 家庭 警報、転倒音、叫び声など openSMILE DAE+BLSTM 道路 タイヤの滑り音と音、衝突音 MFCC、フィルタバンク、LLD→VQヒストグラム 複数のSVMの組み合わせ 一般 爆発、銃声、ガラス音、悲鳴 MPEG-7LLD SVM 鉄道 叫び声 MFCC+パワー DBN-DNN 日本音響学会紙75巻9号(2019) p539より引用抜粋 近年はほとんど 機械学習モデル はじめに 対象とする環境・対象に合わせて音響特徴量を選択 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 8
  8. Raw Signalグラフ • Wavファイルの値を時系列にならべたグラフ • モノラルの場合は横軸に対して線対称 • ステレオの場合、上限が左チャンネル、下限が右チャ ンネル •

    縦軸:wavファイルに格納されていた値 • 横軸:時系列 • 音圧、音高のちがいは比較的判別しやすい あ い う え お 右図「う」「え:と「あ」「い」 「お」の違いは明確だが 5音の分類は難しい 正規化して図示するこ とが多い ①Raw Signal グラフ (C)Tasuku Hori, EXA CORPORATION Japan, 2022 10
  9. Raw Signalグラフ:簡易環境デモ 無音 最遠 至近 -0.006~0.006 -0.015~0.015 -0.004~0.004 「最遠」位置が最も 振幅が大きいようにみえるのは、

    縦軸のスケールが異なっているため << > 3種類の縦軸範囲が明確に違うので 分類可能 ①Raw Signal グラフ (C)Tasuku Hori, EXA CORPORATION Japan, 2022 11
  10. サンプルサイズ: フレーム内で使用 する要素数 2の累乗で指定 周波数 振幅 位相 XXXX AAA 〇〇

    YYYY BBB ×× ZZZZ CCC △△ 周波数 振幅 位相 XXXX AAA 〇〇 YYYY BBB ×× ZZZZ CCC △△ 周波数 振幅 位相 XXXX AAA 〇〇 YYYY BBB ×× ZZZZ CCC △△ スペクトログラム ①フレーム(ウィンドウ)に分割 フレームサイズ=4 フレームシフト=4 フレームシフト分ずらしながら 一部重なるように切り出していく ②切り出したフレームごとにフーリエ変換 フーリエ変換 + + 周波数 振幅 位相 XXXX AAA 〇〇 YYYY BBB ×× ZZZZ CCC △△ ③振幅を色の濃さでプロット 元データがdB単位のもの →パワースペクトログラム 「音紋」とも呼ばれる 音響学で使用する 元データの種類はいくつか 存在する 短時間フーリエ変換(STFT) ②パワースペクトログラム (C)Tasuku Hori, EXA CORPORATION Japan, 2022 12
  11. パワースペクトログラム • 音圧をスペクトログラムで表示したもの • 縦軸:周波数 • 横軸:時系列 • 色 :音圧(単位:dB)

    • 声紋・音紋と呼ばれることもある • 音声認識に利用されている • 肉声や楽器などの音素分類など あ い う え お Raw Signalグラフより 母音のちがいが明確に確認できる ②パワースペクトログラム (C)Tasuku Hori, EXA CORPORATION Japan, 2022 13
  12. メル尺度 • 人間の聴覚に基づいた音高の尺度、単位はmel • 周波数が低いと敏感、高いと鈍感 • 算出定義内に自由パラメータがあり、用途・目的に合わせ決定する →ここではlibrosaライブラリ実装を使用 メ ル

    尺 度 667 Hz 1,410 Hz 2,80 5 5,57 8 11,093 Hz 22,06 1 《メルフィルタバンク》 メル尺度をもとに重み付け した行列にしたもの 行を周波数分離数に 列を低次元の要素数に ③ログメルスペクトログラム (C)Tasuku Hori, EXA CORPORATION Japan, 2022 15
  13. メルフィルタバンクによる低次元化 《メルフィルタバンク》 × mel_dims (周波数をあらわす) フレーム数(時間をあらわす) 対数 《パワースペクトログラム》 《ログメルスペクトログラム》 縦軸をHzに、

    横軸を時間にス ケール変更 num_bins num_bins mel_dims 周波数の分割数 元の次元より小さくする より人間の近くに近い尺度で より次元数をさげて評価できる ③ログメルスペクトログラム 《メルスペクトル》 《ログメルスペクトル》 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 16
  14. ログメルスペクトログラム • メルスペクトルをスペクトログラムで表示 • 縦軸:周波数 • 横軸:時系列 • 色 :メルスペクトル(対数スケール)

    • 人の聴覚に近い音響特徴量 • パワースペクトルより高周波数に敏感に あ い う え お パワースペクトログラムより 高周波数帯の変化を目で確認できる ③ログメルスペクトログラム (C)Tasuku Hori, EXA CORPORATION Japan, 2022 17
  15. 音声特徴量 Raw Signal パワー スペクトル ログメル スペクトル メル係数 ケプストラム より次元数の少ない特徴量ベクトルへ

    フーリエ変換 メルフィルタ バンク 離散コサイン変換 Raw Signal グラフ パワー スペクトログラム 人の感覚により近く 周波数ごとに分解 音色の特徴を(楽器など) 分類器に機械学習をつかうようになり あまり利用されなくなった ログメル スペクトログラム 《特徴抽出》 音声は軽そのもの(正規化) まとめ デモ次元:(257,997) デモ次元:(24,997) デモ次元(20,429) デモ次元(219136,) MFCC ※要素数としては少し増えている ※要素数は元の1割程度 ※要素数は元の4%程度 ※10秒音声、44100Hz、2バイト (C)Tasuku Hori, EXA CORPORATION Japan, 2022 19
  16. 音声データ可視化Webアプリ • GitHub リポジトリからclone • Git clone https://github.com/coolerking/anormaly_sound_pi • Python環境にlibrosa/Streamlitパッケージをインストール

    • cd anormaly_sound_pi • pip install streamlit~=1.3.0 librosa~=0.9.2 matplotlib~=3.5.2 scikit-learn~=1.1.2 soundfile~=0.10.3.post1 numpy=~1.22.4 • view.py を実行 • streamlit run view.py まとめ (C)Tasuku Hori, EXA CORPORATION Japan, 2022 20
  17. 音響特徴量の選択 音声データを可視化して決める ①Raw Signal グラフ ②パワースペクトログラム ③ログメルスペクトログラム Raw Signal パワー

    スペクトル ログメル スペクトル 音響特徴量 まとめ 非機能要件の変更を考える • 音声以外のものを使う • 複数のセンサを使う 非機能要件 変更が可能な PoC段階以前 に済ませておく (C)Tasuku Hori, EXA CORPORATION Japan, 2022 27
  18. 音響特徴量を磨く • 加法性歪み • 様々な環境雑音を特徴量から除去する • 対象音が発生していない状態で録音、特徴量化して差分をとる • 乗法性歪み •

    マイクやアンプなどの増幅の影響(伝達特性)を補正する • 補正対象は対数メルスペクトル • ログをとることで掛け算が足し算に変わるので • 動的特徴量の検討 • フレームの前後における変化を特徴量化する • Δ特徴量(1階差分)、ΔΔ特徴量(2階差分)など まとめ (C)Tasuku Hori, EXA CORPORATION Japan, 2022 28
  19. 初学者向け参考講座 • Udemy「【最速で実装】ディープラーニングによる異常検知」 • 画像やログ、音声などの異常検知を手っ取り早く試せる • 初学者向け、Pythonの基礎はあると良い • Udemy「Python/Steamlitによる機械学習WEBアプリの開発」 •

    Streamlitを手っ取り早く使えるようになる • UI経験者なら公式のチュートリアルでも十分 • Youtube「フーリエ変換 フーリエ級数 周波数スペクトル」 • フーリエ変換を視覚(3DCG)的に理解できる • 英語だがキャプションを日本語にすればOK まずコレ PoCの前に実装のあたりをつける 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 32
  20. 参考書籍 • オーム社刊「Pythonによる異常検知」 • 音声のような時系列データだけでなく画像のような比時系列データについて も解説 • 数式多めで比較的汎化されている • インプレス刊「Pythonで学ぶ音源分離」

    • 話者分離・音源分離法が中心 • かなり数学よりの書籍 • 講談社刊「テキスト・画像・音声データ分析」 • 音声データについては音声認識を中心に記述 • 比較的実例を出しつつ解説しており、用語を理解するのに適している まずコレ PoC中に特徴抽出・音響特徴量の知識を得る 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 33
  21. 《解析学》 《スペクトル分析》 短時間フーリエ解析を理解する手順 級数展開 フーリエ級数展開 複素フーリエ級数展開 離散フーリエ変換(DFT) 高速フーリエ変換(FFT) 短時間フーリエ変換(STFT) フレームごとに分割して計算

    窓関数を使用 線形代数 o(n^2)をo(n logn)に ただしn=1,2,4,8,16,32,.. 非周期関数化 周期∞の周期関数として考える 対象を周期関数(周期2π)にする 関数系を三角関数系に オイラーの公式を適用 周期2π→一般周期化(2π→2Lで計算) librosa.stft() ある関数の性質を知るために より基本的な関数系に展開する テイラー展開、マクローリン展開など 高校数学 微積分、偏微分、連鎖律 行列計算 ※戻り値は複素数 理解してないと本来の値の 意味が理解できない 推 奨 学 習 順 序 ライブラリの引数・戻り値の意味を理解できるように 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 34
  22. 異常検知 利用例 • 不正侵入検知 • 詐欺検出 • 医療診断 • ビデオ監視

    • 産業用欠陥損傷検出 機械学習 マルチ モーダル × によるユースケースの多様化 《医療診断×AI》 《欠陥損傷検出×AI》 《ビデオ監視×AI》 《不正侵入検知×AI》 《詐欺検出×AI》 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 35
  23. マイク (マイクロフォン) • 音を電気信号に変換する装置 • 空気信号→機械的振動→電気信号 • 人間の耳に模して作られている • ダイナミック型

    • 空気の振動で磁石の中のコイルや金属箔を動かし電気を起こす • コンデンサー型 • 振動板と固定極に予め電気を溜め振動で振動膜が動き電圧が変化する 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 36
  24. wavファイルフォーマット バイト長 内容 4 文字列”RIFF” 4 以降のファイルサイズ(総ファイルサイズ-8)(バイト) 4 文字列”WAVE” 4

    文字列”fmt” 4 fmtチャンクのバイト数 2 フォーマットID (1:リニアPCM) 2 チャネル数 4 サンプリング周波数(Hz) 4 データ速度(バイト/秒) 2 ブロックサイズ(バイト/サンプル数×チャネル数) 2 サンプルあたりのビット数、ビット解像度(ビット/サンプル) 4 文字列”data” n 波形データ 40 インプレス「Pythonで学ぶ音源分離」より引用 リニアPCM (無圧縮・サンプリング周波数固定) 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 37
  25. WAV(リニアPCM)波形データ • サンプリング周波数ごとの信号を記録したもの • 信号をビット解像度範囲で量子化した数値を記録 • 量子化には線形量子化を使用 • モノラル音声信号のみ使用 波形データメタ情報

    今回使用した波形データ 説明 サンプリング周波数 44,100Hz 1秒間に何回記録するか ビット解像度 8ビット(-32,768~32,768) 記録数値の範囲 量子化 線形量子化 信号を離散的な数値で 表す方法 チャンネル 1 1:モノラル、2:ステレオ Δ Δ Δ Δごとに区切る 信号値 Δ Δ Δ 量子化誤差が 最も小さい値に近似 線形量子化 量子化誤差 チャンク: 何件溜まったらデータに書き出すか 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 38
  26. 音源モデルと空間モデル • 音源モデル • 音源の音色構造をモデル化 • 音源ごとの発する音の特徴 • 非負値行列因子分解、時間周波数マスキング •

    空間モデル • 空間的な伝達をモデル化 • 音がマイクまで空間的にどのようにつたわるか • ビームフォーマ、方位クラスタリング 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 39
  27. 音響における優決定系、劣決定系 • 線形代数用語 • 優決定系 • 連立方程式において変数の数に対して制限式が多い • 音源数よりマイクの数(チャネル数)が多い場合のこと •

    劣決定系 • 連立方程式において変数の数に対して制限式が少ない • マイクの数(チャネル数)より音源数が多い場合のこと 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 40
  28. 音圧 • 音による圧力、大気圧からの変動分 • 単位はPa (パスカル) • 瞬間音圧:ある瞬間における音の圧力変異 • ピーク音圧:ある時間区間における瞬間音圧の最大絶対値

    • 一般的に瞬間音圧の実効値で表現される • 音圧レベル • 音圧の大きさを基準値との比を常用対数によって表現した量 • 単位はdB (デシベル) • 人が認識できる音圧はPaだと広範囲(20μPa~20Paといわれている)になる のでdBで表現することが多い 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 42
  29. 基音、上音 • 音の波形をフーリエ変換などで周波数成分ごとに分解 • 基音 • 各周波数成分のうちもっとも周波数の低いもの • 上音 •

    基音以外の周波数成分 • 基音の周波数がその音の音高に、上音にどのような成分が含まれて いるかで音色がかわる 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 43
  30. 音色 • 音の波形のちがい • 「聴覚に関する音の属性の一つで、物理的に異なる二つの音が、た とえ同じ音の大きさ及び高さであっても異なった感じに聞こえるとき、 その相違に対応する属性」(JIS Z 8106:2000 音響用語)

    • 人は上音にどのような周波数の音がどれくらいの強さで含まれている かが音色のちがいとして感じる 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 44
  31. 音素 • 意味を区別する働きをする音声上の最小単位 • 音声認識では発音記号に対応する音 • 日本語の音素(Wikipedia) 種類 発音記号 母音

    /a/, /i/, /u/, /e/, /o/ 子音 /k/, /s/, /t/, /c/, /n/, /h/, /m/, /r/, /g/, /z/, /d/, /b/, /p/ 半母音 /j/, /w/ 特殊モーラ /N/(ん), /Q/(っ), /H/(ー) 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 45
  32. 周期、周波数、振幅、位相 • 周期 • 波1回あたりの時間、y=a sin(bt+c)の2π/b • 周波数(振動数) • 1秒間あたり何回の山がやってくるか

    • 振幅 • 山の高さ(片振幅、y=a sin(t)のa) • 山谷の高さは両振幅 • 位相 • ずれ、y=a sin(bt+c) のc 振幅2倍 周波数2倍 位相+1 周期1/2倍 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 46
  33. サンプリング周波数 • AD(アナログ→デジタル)変換を1秒間に何回実行するか • 単位:Hz • 一般的に、ある音を正確に記録するには、対象音の倍以上の周波数 が必要といわれている • CDのサンプリング周波数:44.1

    kHz • ナイキスト周波数 • サンプリング周波数の1/2の周波数のこと 《サンプリングレート》 何秒に1回データを取得したか サンプリング周波数の逆数 参考 《注意》 スペクトル分析結果の周波数と混同しやすい! (C)Tasuku Hori, EXA CORPORATION Japan, 2022 47
  34. ZCR: Zero Crossing Rate • 信号の中で正負がどれくらい切り替わっているかを示す値 • 音声認識や音楽情報検索などに使用される • 打楽器を分類する場合や、音声アクティビティ検出(人間の発話

    が存在するか)の場合などにも使用される • ZCR値が大きいとノイズが多いといわれている 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 49
  35. 主な音声コーデック一覧 音声データ形 式 拡張子 特徴 WAVE .wav (32bit符号 なし整数) .w64

    (64bit符号 なし整数) MSが開発したWindows用音声ファイル形式 データサイズは大きい CD並の品質を保つことが可能(44.1kHz 16bit ステレオ) コンテナ規格なのでdataチャンクにほかのコーデックも格納できる .wavは4GBまで、.w64は4GB以上可能 AIFF .aif .aifc (非可逆 圧縮) Appleが開発したMac用音声ファイル形式 非圧縮の場合CD並の品質を保つことが可能(44.1kHz 16bit ステレオ) MP3 .mp3 独フラウンホーファが開発、MPEG-1の音声データコーデックのひとつ 非可逆圧縮により高い圧縮率を誇る(音質を犠牲により高くできる) CDとほぼ同じ音質をたもって圧縮することも可能 WMA .wma MSが開発したWindows用音声ファイル形式 人間の聴覚では気づきにくい部分を改変・間引きすることで 劇的に圧縮率を上げる非可逆圧縮方式を採用 希望する音質に合わせ圧縮率をかえることができる 同音質の場合、MP3の半分程度のデータ量で済む WMA Standardの派生として、可逆圧縮のWMA Lossless、 声に特化したWMA Voice、最高7.1chまで可能なWMA Proなどが追加 AAC .mov、.mp4、 .m2ts、.m4a、 .m4b、.3gp、 .3g2、.aac ISO/IECにて規定された不可逆圧縮方式 MP3の光景として策定、同程度ビットレートの場合MP3より高品質 MPEG-2/4の仕様の一部としても利用される MP3より若干データサイズは大きめだが サンプリング周波数はMP3が48kHzまでに対しAACは96kHzまで FLAC .flac、 .fla、.oga、 .mka オープンフォーマットの可逆圧縮方式を採用したコーデック GPLだったがOggプロジェクトが加わり コアライブラリは修正版BSDライセンスへ変更された エンコード・デコード速度が早く、データ構造がエラーに強い 非圧縮方式として FLAC Uncompressedがある 参考 デモで使用したコーデックはwave 波形データはリニアPCM(非圧縮) サンプリング周波数44100Hzモノラル→実質22050Hz ※CD並の音質→44100Hzステレオ (C)Tasuku Hori, EXA CORPORATION Japan, 2022 50
  36. PCM Pulse Code Modulation • パルス変調方式 • アナログ信号をデジタル信号に変換数方式の一つ • 標本化と量子化を行いデジタル信号に変換する

    • 標本化 • アナログ信号を一定間隔で測定 • 量子化 • 信号の値を離散値で近似的にあらわす • 量子化ビット数をへらすとデータ量が減るが誤差は増える • リニアPCM • 線形量子化を使ったPCM、代表的な無圧縮PCMに使用される Δ Δ Δ Δごとに区切る 信号値 Δ Δ Δ 量子化誤差が 最も小さい値に近似 線形量子化 量子化誤差 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 51
  37. フーリエ解析 周期2Lの周期関数f(x)の場合: 《フーリエ級数展開》 《フーリエ係数》 n:離散的 非周期関数f(x)の場合: フーリエの積分公式 フーリエ変換 ω:連続的 n

    ω Youtube動画「【大学数学】フーリエ解析入門⑤(フーリエ変換)/全5講【解析学】」より引用 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 54
  38. フーリエ変換 • 非周期関数を周期∞の周期関数としてフーリエ級数展開 • 時間領域のデータを位相領域のデータに変換する • 音響学では周波数ごとの振幅が時系列で変化する様子を捉えることがで きないため、短時間フーリエ変換をつかう • 短時間フーリエ変換

    STFT: Short Term Fourier Transform • 音声データを短時間の時系列データに区切る • 各データごとにフーリエ変換を実行 • フレーム • 短時間に区切った時系列データのひとつ 周波数 振幅 位相 XXXX AAA 〇〇 YYYY BBB ×× ZZZZ CCC △△ STFT (-∞, ∞)において区分的になめらか (-∞, ∞)において絶対可積分可能 周波数 振幅 位相 XXXX AAA 〇〇 YYYY BBB ×× ZZZZ CCC △△ 周波数 振幅 位相 XXXX AAA 〇〇 YYYY BBB ×× ZZZZ CCC △△ 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 55
  39. • 元の音に何らかの処理をかけて加工する • 周波数選択フィルタ • 特定の周波数を削除した音声データに変換する • フーリエ変換して特定周波数を削除加工する • 音声系ライブラリのフィルタ関数にかける

    フィルタ 元の 音声データ フーリエ変 換 逆 フーリエ変 換 加工後の 音声データ 周波数 振幅 位相 XXXX AAA 〇〇 YYYY BBB ×× ZZZZ CCC △△ 周波数 振幅 位相 XXXX DDD 〇〇 YYYY BBB ×× ZZZZ CCC △△ 間引いたり 数字を加工する 「あー」 「ぼえー」 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 56
  40. フィルタバンク • 周波数フィルタの1つ • 入力信号を複数のコンポーネントに分割 • 一般的には、分割したコンポーネントを再結合し元の信号に戻せるように 作成される • 信号の間引き、補完処理などを行う

    • フィルタバンクの例 • ボコーダ:携帯通話などで使用、一旦パラメータ化し送信 • ダウンサンプリング:周波数を上げる • アップサンプリング:周波数を下げる • メルフィルタバンク • メル尺度で等間隔になるように等間隔に 参考 次元が変わる場合は情報 損失がおこることも (C)Tasuku Hori, EXA CORPORATION Japan, 2022 57
  41. ケプストラム cepstrum • 音声波形を離散フーリエ変換にかけ、パワースペクトルを算出 • 横軸:周波数、縦軸:パワースペクトル • 対数をとり、対数パワースペクトルを算出 • 横軸:周波数、縦軸:対数パワースペクトル

    • 対数パワースペクトルを離散フーリエ変換にかけ、ケプストラムを 算出 • 横軸:ケフレンシー(ケプストラムにおける時系列のようなもの)、縦軸: ケプストラム ここで①メルフィルタバンクにかけ ここで②離散コサイン変換にかけると MFCC(メル尺度ケプストラム)になる 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 58
  42. LDAを使った音響特徴量 《ログメルスペクトログラム》 t フレームt t-1 t-5 フレームt-5~t-1 フレームt+1~t+5 t+5 t+1

    t-5 t-1 t t+1 t+5 LDA変換行列 ログメルスペクトル次元×6 ログメルスペクトル次元×6 lda_dim より小さい次元に × 各t 縦に連結 線形判別分類を使って次元を削減 全フレームを集めて 音響特徴量として使う 集める 動的・静的特徴量両方の効果がひとつに 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 60
  43. 音声を扱うPythonライブラリ • librosa • 音声分析を行うときに使用するPythonライブラリ • 音声系ユーティリティ、フィルタバンク、スペクトログラムなどの描画など • python_speech_features •

    音声分析系Pythonライブラリ • メルフィルタバンクやMFCCなど音響特徴量抽出などの機能もある • soundfile • 音声ファイルの読み書きをおこなうPythonライブラリ • PyAudio • 音声の再生や録音を行うためのPythonライブラリ • Windows上で動作させるにはPortAudioが必要 • wave • WAVフォーマットの読み書きをおこなうPythonモジュール 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 61
  44. データ分析結果可視化Pythonライブラリ • Dash • ダッシュボードUIを作成する場合に便利なUIフレームワーク • コールバックを書くイベント駆動型 • サンプルダッシュボードが公開されているのでできることがすぐわかる •

    Udemy講座「Python/Dash/Plotlyで簡単に機械学習WEBアプリを開発しよう」 ほか • Streamlit • 上から下へ流れるコードばかり書いているデータサイエンティスト向け • むちゃくちゃ簡単、サンプルコード見ればすぐに覚えられる • Web UI下記慣れている人には物足りない? • streamlit run ~.pyで実行する • Udemy講座「Streamlit,Pandas,Pythonで学ぶ!データ分析の基礎とインタラク ティブダッシュボード作成入門」ほか 参考 (C)Tasuku Hori, EXA CORPORATION Japan, 2022 62