PyCon JP 2012のハンズオンセッションで使用したスライドです。ハンズオンに参加して、その場で解説を聞きながら眺めるというようなものなので、あまり自習向けではないです。自習用の資料などは、なんらかのかたちで提供できればと考えています。
Pythonで音声信号処理(2011/05/14) 今回は、スペクトログラムを使って遊んでみました。サウンドスペクトログラムって何って人はこちらへ。Pythonでサウンドスペクトログラム(2011/10/1)。 なんとスペクトログラムに任意の画像を埋め込んだ音声が作れるとのこと。こんなふうに。 Aphex TwinというミュージシャンのEquationという曲に埋め込まれた画像だそうです。こんな風に画像をスペクトログラムに簡単に埋め込むツールをいくつか見つけたので遊んでみます。 Coagula Coagulaというツールで画像をスペクトログラムに埋め込んだ音声が作れます。Coagulaを起動したらキャンバスが出てくるのでそこに任意の絵を描きます。F5キーで画像をスペクトログラムに変換し、FileメニューのSave Sound As...でWAVEファイルとして音声を保存できます。WAVEフ
今年の目標(2011/1/1)の1つに音声認識技術の深耕というのを立ててます。いきなり音声認識をやるのは知識不足でかなり大変だということが分かったので、まずは音声のいろんな性質や信号処理の技術を一つ一つ試しながら習得していくことにしました。 音声信号処理ではよくMatlabが使われるようなのですが、 Matlabは高くて買えない(フリーのOctaveってのもあります) すでに使っているPython、Rと文法が似ていて混乱する というわけでMatlabはやめてPythonを使います。SciPyにフーリエ変換の機能があったのでたぶん同じようなことができるでしょう。Pythonのいろんな音声関係のライブラリなんかも紹介できればと思います。 当面の目標は、簡単な類似楽曲検索システムを作ることです。その後は、いろんなツール(HTKなど)を駆使して音声認識システムを作りたいと思ってます。 このページは
Pythonで音声信号処理(2011/05/14) 今までは、既存の音声ファイルを再生したり、波形を見たりしてきましたが、今回は、音の波の基本となる正弦波や正弦波を合成して作れる三角波、矩形波、ノコギリ波などを自前で作って音を鳴らしてみたいと思います。正弦波の基本式は、 です。ここで、Aは振幅、f0は基本周波数、tは時間です。今回は、コンピュータで音を扱うので時間を離散化します。 ここで、fsはサンプリング周波数(1秒間のサンプル数)、nはサンプルのインデックスです。これを先の正弦波の式に代入すると となって、tの式をnの式に変換できます。この式を使うと、nサンプル目の波の値が計算できます。 正弦波を作る まずは、ドレミファソラシドの各音階の正弦波を作って鳴らしてみます。正弦波はこんな形。 音だと ドは262Hz、ラは440Hzというように周波数が決められています。周波数の間には、十二平均
Pythonで音声信号処理(2011/05/14) 今回は、サウンドエフェクトのアルゴリズムであるディレイとリバーブを試してみます。私は、PCで音楽を聴くとき、いつもコンサートホールのサウンドエフェクトをかけて聴いていますがそれと同じ効果を自分で実装してみたいと思います。サウンドエフェクトをかけながら音楽を聴くと原曲とはちょっと違った感じで楽しいです。 ディレイ まず、ディレイですが、これは現在の時刻の音に過去の音を重ね合わせるサウンドエフェクトです。やまびこみたいな効果ですね。ヤッホー、ヤッホー、ヤッホー(だんだん音は小さくなる)みたいなイメージ。実際に聴いてもらった方がイメージがつかみやすいのでサンプル音声を作ってみました。 こんな感じで最初の音声が遅れて(ディレイ)何度か再生されます。声の主は某動画サイトで大人気のゆっくりさんです。棒読みちゃんという音声合成ソフトで作って見ました。
Pythonで音声信号処理(2011/05/14) 今回は、高速フーリエ変換(FFT)を試してみます。FFTとはFinal Fantasy Tactics Fast Fourier Transformの略でその名の通り、前回の離散フーリエ変換(DFT)を大幅に高速化したしたアルゴリズムです。一般にフーリエ変換といったらFFTが使われるようです。DFTは自分で公式に忠実に実装してみましたが、FFTはPythonのnumpyやscipyに実装があるのでそれを使ってみます。numpyの実装はnumpy.fft.fftでscipyの実装はscipy.fftpack.fftです。使い方はほとんど同じですが、この記事によるとscipyの実装の方が高速とのこと。scipy版には他にもいろいろ関数があります。おいおい使っていきたいと思います。 #coding:utf-8 import wave impor
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く