人工知能に関する断創録

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

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でケプストラムの定義…

ラングトンの自己複製オートマトン

ついにやった!ループが自己複製をしている。 ラングトンの日記(1979/10/26) ラングトンの自己複製オートマトンは、ラングトン・ループ(Langton's Loops)と呼ばれます。ライフゲームと同じ二次元のセル・オートマトン空間上でループが増殖していきます。…

セルオートマトン

この宇宙が、天国にいるものすごいハッカーのコンピュータで動いているセルオートマトンでできていないという証拠はない とある研究者 今回からしばらくセルオートマトンの不思議な世界をふらついてみようと思ってます。セルオートマトンは、その名前のとお…

IIRフィルタ

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

2012年の方向性

この記録も今年で10周年を迎えました。読んでくれてるみなさま、ありがとうございます。はてなダイアリーで書き始めたのは2005年3月14日ですが、記録自体は2002年から始めていました。飽きっぽい性格でいろいろやっていますが、本当に面白いと思った人工知能…

2011年まとめ

2011年目標(2011/1/1)の続き。大晦日になって今年は何の目標立ててたんだっけと振り返ってばっかりですけれど、今年は、カオス理論と音声信号処理の深耕、TOEIC860点という目標を立ててたようです。目標どおり、カオス理論と音声信号処理の勉強は始めまし…

SciPyのFIRフィルタの使い方

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

バンドストップフィルタ

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

バンドパスフィルタ

Pythonで音声信号処理(2011/05/14)ハイパスフィルタ(2011/10/29)の続き。今回は、バンドパスフィルタを実験します。バンドパスフィルタは、エッジ周波数を2つ指定します。ある周波数からある周波数までの領域を通すようなフィルタです。式で書くととなり…

ハイパスフィルタ

Pythonで音声信号処理(2011/05/14)ローパスフィルタ(2011/10/28)の続き。今回は、ハイパスフィルタを実験します。逆フーリエ変換の式が違うだけでほとんどローパスフィルタと同じなんだけどね。ハイパスフィルタは、ローパスフィルタの逆でエッジ周波数f…

ローパスフィルタ

Pythonで音声信号処理(2011/05/14)FIRフィルタ(2011/10/23)の続きです。今回は、FIRフィルタの代表例であるローパスフィルタ(LPF)を実装していきます。フィルタの設計には、Z変換という技術が必要になります。元の空間では難しい問題をZ変換で別の空間…

FIRフィルタ

Pythonで音声信号処理(2011/05/14)今回からしばらくディジタルフィルタの実験をいろいろやろうと思います。ディジタルフィルタは、 乗算器 加算器 遅延器 の3つの要素の組み合わせによって構成されます。この組み合わせ方によって、 FIR(Finite Impulse R…

ディストーション

Pythonで音声信号処理(2011/05/14)今回は、ディストーション(distortion)というサウンドエフェクトを試してみます。ディストーションは、音を極端に増幅し、わざとクリッピングを発生させることで、歪んだ(ひずんだ)音色を作る技術とのこと。普通の音…

サウンドスペクトログラムに画像を埋め込む

Pythonで音声信号処理(2011/05/14)今回は、スペクトログラムを使って遊んでみました。サウンドスペクトログラムって何って人はこちらへ。Pythonでサウンドスペクトログラム(2011/10/1)。なんとスペクトログラムに任意の画像を埋め込んだ音声が作れるとの…

Pythonでサウンドスペクトログラム

Pythonで音声信号処理(2011/05/14)今回は、さまざまな音声のスペクトログラム(spectrogram)を求めてみたいと思います。科学捜査班が声紋分析で使っているやつですね。こういうの。名前がスペクトログラムってくらいなのでフーリエ変換で求めるスペクトル…

短時間フーリエ変換

Pythonで音声信号処理(2011/05/14)今回は、短時間フーリエ変換(Short-Time Fourier Transform: STFT)を実装してみます。音声信号スペクトルの時間変化を解析する手法です。ある一定の長さの信号サンプルを切り出し、それに窓関数をかけてからフーリエ変…

ディレイとリバーブ

Pythonで音声信号処理(2011/05/14)今回は、サウンドエフェクトのアルゴリズムであるディレイとリバーブを試してみます。私は、PCで音楽を聴くとき、いつもコンサートホールのサウンドエフェクトをかけて聴いていますがそれと同じ効果を自分で実装してみた…

高速フーリエ変換(FFT)

Pythonで音声信号処理(2011/05/14)今回は、高速フーリエ変換(FFT)を試してみます。FFTとはFinal Fantasy Tactics Fast Fourier Transformの略でその名の通り、前回の離散フーリエ変換(DFT)を大幅に高速化したしたアルゴリズムです。一般にフーリエ変換…

離散フーリエ変換

Pythonで音声信号処理(2011/05/14)今回は、信号処理の肝とも言える離散フーリエ変換(Discrete Fourier Transform: DFT)を試してみようと思います。ときどき感動するアルゴリズムに出会うけれど、フーリエ変換はその一つです。最初に考え出したフーリエさ…

正弦波の合成

Pythonで音声信号処理(2011/05/14)今までは、既存の音声ファイルを再生したり、波形を見たりしてきましたが、今回は、音の波の基本となる正弦波や正弦波を合成して作れる三角波、矩形波、ノコギリ波などを自前で作って音を鳴らしてみたいと思います。正弦…

波形を見る

Pythonで音声信号処理(2011/05/14) サイン波 次は音の波をプロットして目に見えるようにしてみます。グラフの描画にはPythonのmatplotlibを使います。WAVEファイルには音をディジタル化(標本化 + 量子化)したデータがそのまま含まれているのでそれを読み…

WAVEファイルの再生

Pythonで音声信号処理(2011/05/14)まずは基本ということでWAVEファイルを再生してみます。Pythonにはwaveモジュールが用意されていてWAVEファイルの読み書き、情報の抽出はできます。しかし、waveモジュールだけでは音を再生できないのでpyaudioという別の…

Pythonで音声信号処理

今年の目標(2011/1/1)の1つに音声認識技術の深耕というのを立ててます。いきなり音声認識をやるのは知識不足でかなり大変だということが分かったので、まずは音声のいろんな性質や信号処理の技術を一つ一つ試しながら習得していくことにしました。音声信号…