Pythonで音声信号処理
今年の目標(2011/1/1)の1つに音声認識技術の深耕というのを立ててます。いきなり音声認識をやるのは知識不足でかなり大変だということが分かったので、まずは音声のいろんな性質や信号処理の技術を一つ一つ試しながら習得していくことにしました。
音声信号処理ではよくMatlabが使われるようなのですが、
- Matlabは高くて買えない(フリーのOctaveってのもあります)
- すでに使っているPython、Rと文法が似ていて混乱する
というわけでMatlabはやめてPythonを使います。SciPyにフーリエ変換の機能があったのでたぶん同じようなことができるでしょう。Pythonのいろんな音声関係のライブラリなんかも紹介できればと思います。
当面の目標は、簡単な類似楽曲検索システムを作ることです。その後は、いろんなツール(HTKなど)を駆使して音声認識システムを作りたいと思ってます。
このページは後ほど目次や参考文献のリストに使う予定です。
音声信号処理
- WAVEファイルの再生 - waveとpyaudioで音を鳴らす(2011/5/15)
- 波形を見る - WAVEファイルには本当に波が入ってた(2011/5/19)
- 正弦波の合成 - 正弦波を合成して三角波、矩形波、ノコギリ波を作る(2011/6/7)
- 離散フーリエ変換 - 基本式に忠実に計算してみた(2011/6/11)
- 高速フーリエ変換(FFT) - Final Fantasy Tacticsの略じゃないよ(2011/6/18)
- ディレイとリバーブ - お風呂で歌うとうまく聞こえるよね(2011/6/19)
- 短時間フーリエ変換 - スペクトルアナライザを作ってみた(2011/7/16)
- Pythonでサウンドスペクトログラム - 時間、周波数、周波数の強度を1つの図にまとめられる(2011/10/1)
- サウンドスペクトログラムに画像を埋め込む - 画像を音声に変換(2011/10/9)
- ディストーション - エレキギターっぽくするサウンドエフェクト(2011/10/15)
- FIRフィルタ - 波形の移動平均を取ると高周波成分が減衰する(2011/10/23)
- ローパスフィルタ - 移動平均より高精度なローパスフィルタの設計(2011/10/28)
- ハイパスフィルタ - 高周波のみ通す(2011/10/29)
- バンドパスフィルタ - 指定した範囲のみ通す(2011/10/30)
- バンドストップフィルタ - バンドパスフィルタの逆。指定した範囲を通さない(2011/10/31)
- SciPyのFIRフィルタの使い方 - SciPyのローパス、ハイパス、バンドパス、バンドストップフィルタ(2011/11/2)
- IIRフィルタ - IIRフィルタ版のローパスフィルタ(2012/1/3)
- ケプストラム分析 - 音声を声道特性であるスペクトル包絡と音源特性であるスペクトル微細構造に分離する(2012/2/11)
- メル周波数ケプストラム係数(MFCC) - 音声認識でよく使われる声道特性を表す特徴量(2012/2/25)
- フォルマント抽出
- 線形予測分析(LPC) - 声道特性であるLPCスペクトル包絡を求める。レビンソン・ダービン再帰の導出が難しい(2012/4/15)
音楽情報処理
- 類似楽曲検索システムを作ろう - 音声信号処理の応用ということで前から興味があった実験をしてみました(2012/10/14)
SPTKの使い方
- SPTKの使い方 (1) インストール・波形描画・音声再生 - dmp, gwave, raw2wav(2012/7/1)
- SPTKの使い方 (2) 音声波形の切り出し - bcut(2012/7/4)
- SPTKの使い方 (3) ピッチ抽出 - swab, pitch(2012/7/7)
- SPTKの使い方 (4) フーリエ変換 - sin, window, fftr, wav2raw(2012/7/16)
- SPTKの使い方 (5) フレーム分割 - frame, spec, glogsp(2012/8/1)
- SPTKの使い方 (6) MFCCの抽出 - mfcc(2012/8/5)
- SPTKの使い方 (7) メルケプストラム分析合成 - excite, mcep, mlsadf(2013/1/19)
- SPTKの使い方 (8) LPC・PARCOR・LSP分析合成 - lpc, poledf, lpc2par, ltcdf, lpc2lsp, lspdf(2013/2/16)
- SPTKの使い方 (9) メル一般化ケプストラム分析合成 - mgcep, mgc2sp, mglsadf(2013/3/2)
- SPTKの使い方 (10) ボコーダーで遊ぼう - sopr, train (2013/3/9)
統計的声質変換
- ロードマップ - プロジェクトの進め方(2015/2/11)
- ボイスチェンジャーを作ろう - SPTKを使った統計的じゃない声質変換(2015/2/25)
- メルケプストラムの抽出 - 変換の対象となるメルケプストラムを音声から抽出(2015/3/4)
- パラレルデータの作成 - DTWで同期を取る(2015/3/10)
- scikit-learnのGMMライブラリの使い方 - GMMライブラリの使い方を復習(2015/3/22)
- 声質変換モデルの学習 - パラレルデータを用いて声質変換モデルを学習(2015/3/30)
- GMMによる声質変換 - 声質変換モデルを使って音声を変換(2015/4/18)
参考文献
- Speech Signal Processing Toolkit (SPTK) - 音声信号処理の便利なコマンド群、音声合成関係が多い?
- Miyazawa’s Pukiwiki 公開版 - Matlabを使った音声信号処理の実験、音声認識・音声合成ツールの使い方がまとまっています
- Python によるオーディオ処理 - pyaudioの使い方がまとまっています
- やる夫で学ぶディジタル信号処理 - やる夫だけどかなり本格的
- 私のブックマーク「音楽情報処理」 - 最近はこの分野に興味あり、まあ音符読めないし、楽器弾けないんですがね(笑)
C言語ではじめる音のプログラミング―サウンドエフェクトの信号処理
- 作者: 青木直史
- 出版社/メーカー: オーム社
- 発売日: 2008/12
- メディア: 単行本
- 購入: 19人 クリック: 235回
- この商品を含むブログ (24件) を見る
やり直しのための信号数学―DFT、FFT、DCTの基礎と信号処理応用 (ディジタル信号処理シリーズ)
- 作者: 三谷政昭
- 出版社/メーカー: CQ出版
- 発売日: 2004/10
- メディア: 単行本
- 購入: 4人 クリック: 73回
- この商品を含むブログ (14件) を見る