人工知能に関する断創録

このブログでは人工知能のさまざまな分野について調査したことをまとめています(更新停止: 2019年12月31日)

音声信号処理

Freesound General-Purpose Audio Tagging Challenge

最近、Kaggle始めました。登録自体は2年前にしてたのですが、興味起きなくてタイタニックやった後にずっと放置してました (^^; 今回、取り組んだのはFreesound General-Purpose Audio Tagging Challengeという効果音に対して3つのタグをつけるコンペです。2…

Speech and Audio @ NIPS2017

PFN主催のNIPS2017読み会において Speech and Audio というテーマで発表してきました。 NIPS2017報告 SPEECH & AUDIO from Koichiro Mori ★初SlideShare★ 今回は複数の論文をまとめたテーマ発表を入れると聴いたのでどのテーマにするか悩みました。最初は、…

統計的声質変換 (7) GMMによる声質変換

統計的声質変換 (6) 声質変換モデルの学習の続き。今回が統計的声質変換シリーズの最終回です。今回は、前回学習した声質変換モデルを使って本当に声が変換できるか試してみたい。前回やったGMMの学習でにおける各コンポーネント の と と が学習データから…

統計的声質変換 (6) 声質変換モデルの学習

統計的声質変換 (5) scikit-learnのGMMの使い方(2015/3/22)の続き。 今回は、いよいよ声質変換モデルを混合ガウスモデル(GMM)で学習しよう!第3回目(2015/3/4)で述べたようにclbさんの声をsltさんの声に変換することを前提に進める。 今まで「声質変換…

統計的声質変換 (5) scikit-learnのGMMの使い方

統計的声質変換 (4) パラレルデータの作成(2015/3/10)の続き。 今回は、いよいよ声質変換モデルを混合ガウスモデルで学習しよう!と思ったのだけれど、その前にscikit-learnのGMMライブラリの使い方を簡単にまとめることにした。本格的に使う前に簡単なデ…

統計的声質変換 (4) パラレルデータの作成

統計的声質変換 (3) メルケプストラムの抽出(2015/3/4)の続き。 前回は変換元のclbさんと変換先のsltさんのメルケプストラムを一括抽出した。前回の最後の結果を見ると、二人のしゃべる速さが違うためメルケプストラムが時間方向にずれていることがわかっ…

統計的声質変換 (3) メルケプストラムの抽出

統計的声質変換 (2) ボイスチェンジャーを作ろう(2015/2/25)の続き。 前回は音声から抽出したメルケプストラムやピッチのパラメータを直接いじることで簡単なボイスチェンジャーを作った。今回からAさんの音声をBさんの音声に変換する規則を機械学習の手法…

統計的声質変換 (2) ボイスチェンジャーを作ろう

統計的声質変換 (1) ロードマップ(2015/2/11)の続き。 統計的声質変換の第二回ということでまずは統計的じゃない声質変換の枠組みで簡単なボイスチェンジャーを作ってみたい。いきなり本題とずれているけれどここをしっかり理解できていないと統計的な方は…

統計的声質変換 (1) ロードマップ

Pythonで音声信号処理(2011/5/14)のつづき。 @r9y9さんの以下のチュートリアル記事をきっかけに興味をもった統計的声質変換の実験をしてみたい。統計的声質変換とはAさんの声を別のBさんの声に変換する技術のこと。 統計的声質変換クッソムズすぎワロタ(…

Pythonに似ているようで微妙に違うJuliaを勉強した

前に一時期だけ音声信号処理を勉強していた(2011/5/14)ことあったけれど、その一環として@r9y9さんの統計的声質変換のチュートリアルをやってみようと思っている。統計的声質変換というのはAさんの声をBさんの声に変換するための統計モデルを学習するタス…

SPTKの使い方 (10) ボコーダーで遊ぼう

SPTKの使い方 (9)(2013/3/2)の続き。今回は、分析合成音のパラメータを変えることで、高い声、低い声、かすれ声、ロボット声、子供声、深い声などいろんな音声に変換してみます。この実験はSPTKのマニュアルの8章を参考にしています。 オリジナルの音声 今…

SPTKの使い方 (9) メル一般化ケプストラム分析合成

SPTKの使い方 (8)(2013/2/16)の続き。今まで紹介したメルケプストラム分析(2013/1/19)やLPC分析(2013/2/16)を一般化したメル一般化ケプストラム(Mel-Generalized Cepstrum: MGC)分析の実験をしてみます。似たような名前のパラメータがたくさんあって…

SPTKの使い方 (8) LPC・PARCOR・LSP分析合成

SPTKの使い方 (7)(2013/1/19)の続き。前回は、メルケプストラムというスペクトルパラメータを用いたメルケプストラム分析合成の実験をしました。今回は、別のスペクトルパラメータであるLPC、PARCOR、LSPを用いた分析合成を実験してみます。PARCORとLSPは…

メルケプストラム次数

SPTKの使い方 (7) メルケプストラム分析合成(2013/1/19)の続き。メルケプストラム次数を変えたときにスペクトル包絡と分析合成音がどのように変化するか実験してみました。前回書いた mcep.py というスクリプトを使います。SPTKのmcepコマンドのメルケプス…

SPTKの使い方 (7) メルケプストラム分析合成

SPTKの使い方 (6)(2012/8/5)の続き。今回は、SPTK(2012/7/1)を使って音声合成の実験をしてみました。ここで言う音声合成は、テキストを音声に変換するTTS(Text-to-Speech)ではなく、分析合成と呼ばれるものです。分析合成では、人間の音声からパラメー…

類似楽曲検索システムを作ろう

もう1年以上かけて音声信号処理の勉強をしてきました(Pythonで音声信号処理)。ここらで具体的なアプリケーションとして類似楽曲検索の実験をしてみたのでレポートをまとめておきます。言語はPythonです。前に 類似画像検索システムを作ろう(2009/10/3) V…

SciPyでベクトル量子化

ベクトル量子化(Vector Quantization: VQ)とは、ベクトルで表されたデータ集合を有限個の代表的なパターン(セントロイド)に置き換える処理のことです。代表パターン(セントロイド)のリストはコードブック(code book)と呼ばれます。また、クラスタの…

SPTKの使い方 (6) MFCCの抽出

SPTKの使い方 (5)(2012/8/1)の続き。今回は、音声認識の特徴量としてよく使われるメル周波数ケプストラム係数 MFCC(2012/2/25)をSPTKで抽出してみました。使うコマンドは、mfccです*1。 x2x +sf < data.short| frame -l 640 -p 160 | \ mfcc -l 640 -f 1…

Earth Mover's Distance (EMD)

Earth Mover's Distance (EMD) について調べたことを整理しておきます。EMDは、ユークリッド距離のような距離尺度の一つで、二つの分布の間の距離を測ることができます。言語処理ではあまり聞いたことなかったのですが、画像処理や音声処理では比較的有名な…

SPTKの使い方 (5) フレーム分割

SPTKの使い方 (4)(2012/7/16)の続き。今回は、音声波形をフレーム単位に分割するSPTKのframeコマンドを使ってみます。音声でフレームというと、信号の複数のサンプルを一定幅でまとめたものを指すことが多いと思います。前に実装した短時間フーリエ変換(2…

SPTKの使い方 (4) フーリエ変換

SPTKの使い方 (3)(2012/7/7)の続き。今回は、SPTKでフーリエ変換してみます。SPTKには、fftとfftrという2つのコマンドがありました。fftが複素信号用、fftrが実信号用です。音声信号は実信号なので今回はfftrを使います。 サイン波の作成 まずFFTするサイ…

SPTKの使い方 (3) ピッチ抽出

SPTKの使い方 (2)(2012/7/4)の続き。今回は、SPTKマニュアルの2章のピッチ抽出(pitch extraction)を試してみます。ピッチとは声の高さのことで、基本周波数やF0とも呼ばれます*1。ピッチは、人間の発声におけるアクセント、イントネーション、感情表出な…

SPTKの使い方 (2) 音声波形の切り出し

SPTKの使い方 (1)(2012/7/1)のつづき。今回は、音声波形の一部を切り出すbcutコマンドを使ってみます。これよく使うので便利です。音声ファイルdata.short(rawファイルです)の1000サンプル目から11000サンプル目を切り出したいときは、 bcut +s -s 1000 …

SPTKの使い方 (1) インストール・波形描画・音声再生

SPTK(Signal Processing Toolkit)という音声信号処理のツールの使い方を紹介していきます。SPTKには、音声を分析するための豊富なコマンドが約120個も提供されています。今までPythonで窓関数、FFT、MFCC、LPCなどを苦労して実装してきました(Pythonで音…

線形予測分析(LPC)

Pythonで音声信号処理(2011/05/14)の第20回目。以前、ケプストラム分析(2012/12/21)のところで声道の特性を意味するスペクトル包絡を求めた。今回は、線形予測分析(Linear Predictive Coding)という別の手法でスペクトル包絡を求めてみた。この方法で…

メル周波数ケプストラム係数(MFCC)

Pythonで音声信号処理(2011/05/14)の第19回目。今回は、音声認識の特徴量としてよく見かけるメル周波数ケプストラム係数(Mel-Frequency Cepstrum Coefficients)を求めてみました。いわゆるMFCCです。MFCCはケプストラム(2012/2/11)と同じく声道特性を…

ケプストラム分析

Pythonで音声信号処理(2011/05/14)の第18回目。今回は、音声の特徴量としてよく使われるMFCC(Mel-Frequency Cepstrum Coefficients: メル周波数ケプストラム係数)抽出に向けた第一歩としてケプストラム分析を試しました。Wikipediaでケプストラムの定義…

IIRフィルタ

Pythonで音声信号処理(2011/05/14)今まで作ってきたFIRフィルタ(2011/10/23)に続いて、今回は、IIR(Infinite Impulse Response)フィルタをためしてみよう。IIRフィルタでもローパス、ハイパスなどのようなフィルタが作れる。FIRフィルタよりタップ数を…

SciPyのFIRフィルタの使い方

Pythonで音声信号処理(2011/05/14)今まで、5回に渡ってFIRフィルタの例であるローパスフィルタ、ハイパスフィルタ、バンドパスフィルタ、バンドストップフィルタを実装してきました。内部で何をやっているか勉強になって大変面白かったんだけど、当然なが…

バンドストップフィルタ

Pythonで音声信号処理(2011/05/14)バンドパスフィルタ(2011/10/30)の続き。今回は、バンドストップフィルタ(バンドリミットフィルタ、バンドエリミネーションフィルタという呼び方もあるとのこと)を実験します。バンドストップフィルタは、バンドパス…