AudioKit − PCベース・オーディオ開発・実験キット
DSPボードを使わなくても、PCで音声・音響信号の実時間処理が出来ます
DSPボードを使わなくても、PCを使って音声・音響信号処理の研究開発が出来ます
| ← back |
| home |

まだ工事中です. 詳細な情報は今後追加いたします.
デモ・プログラムも順次追加予定です.


なぜ AudioKit が必要なのか?

●DSPの処理性能向上は頭打ち
 音声・音響信号の実時間処理をするならばDSP(Digital Signal Processor)を使うのが常識ですが、DSPコアの性能(=クロック周波数)の向上は頭打ちでハイエンドのDSPはマルチコアが当たり前になっています. しかしながらマルチコアのDSPは画像処理やレーダー信号処理といった2次元の重い処理には適しているものの、単純な多チャネル処理は別として音声・音響信号処理には必ずしも適していないと思われます.
カタログでオーディオ処理向けと謳っている扱いやすいマルチコアDSPもあることはあるのですが、単純なパイプライン処理用に限定された構成になっています.

●Raspberry Pi(ラズパイ)はソフトウェア屋さん向け
 最近、技術雑誌の音声・オーディオ処理の記事で取り上げられることの多いARMプロセッサ搭載のRaspberry Pi(ラズパイ)は、Linuxに慣れたプログラマの方が使うには手頃ですが、本格的な開発向けではありませんし、実時間処理に適したものでもありません.

●PCのプロセッサ性能はDSPを凌ぐ
 現在のパソコンのプロセッサは、ビデオ会議等に使われている実時間の画像圧縮伸張・音声圧縮伸張も軽々とこなします. クロック周波数も既存のDSP製品を上回り、おまけにマルチコアです. 見かけの動作周波数の高さの割りには連続的な積和演算等の能力でDSPに劣る部分があるかもしれませんが、総合的に見て一次元の音声・音響信号の実時間処理においてはDSPを越えるパフォーマンスを期待できるでしょう.
それならば、わざわざDSPボードを用いずにPCとWindows環境で開発作業が出来ればこれほど楽なことはありません.(実時間処理でなければMATLABPythonといったプログラミング言語を使って、PCでオーディオ信号のA/D・D/Aが出来て気軽にアプリケーション開発可能です)

●PCでの実時間処理はやりにくい?
 実は研究機関、大学の研究室でPCを用いた実時間処理システムを用いているところはあるのですが、たまたまプログラミングの得意な人がいて実時間処理プログラムを書いているというレベルに留まっているようです. やれば出来るはずの研究開発のツールとしてのPCを用いた音声・音響信号の実時間処理システムが一般化しないのには下記のような理由が考えられます.

1.信号処理の研究開発をしている人の専門はあくまでも信号処理であってプログラミングの専門家では無い. Windowsのプログラミングに慣れた人でも無いので、Windowsのプログラムを書けない・書けるようになるまでのハードルが高い
2.PCで高速な離散時間信号処理のプログラムを書くには、DSPとは異なるコーディング/最適化のスキルが必要となる.
3.PCのオーディオ・インターフェースの入出力の遅延が大きい(一般的に100msを越えるオーダー)ため、音声処理等の処理遅延の制約の厳しい用途には適してない.

●AudioKitのメリット
 以上の問題を解決して、DSPボードを使わずにWindows PCで音声・音響信号の実時間処理システムの開発をするためのソフト/ハード(オーディオ・インターフェース)両方をパッケージにした開発環境がAudioKitです.(詳細は製品概要をご覧ください)
あくまでも離散時間信号処理の専門家であってWindowsプログラミングの専門家では無い方が、プログラミングの枝葉末節の部分に煩わされることなく自分でコードを書いてPCでの実時間処理の実験が出来るようになります.


AudioKit のデモ・プログラム/サンプル・プログラム

●BLASによる処理高速化の効果確認のデモ
 BLAS (OpenBLAS) を用いたFIRフィルタ、適応フィルタ(FIRフィルタ+LMSアルゴリズム)の処理高速化のデモ・プログラムです. 記述言語にはC言語を使用しています.(FreeBASICでもプログラム作成可能) 
OpenBLASを用いるとFIRフィルタの演算は約4倍速、適応フィルタは約2.5倍速になります.
audiokit_demo01.zip (12Mbyte)

●実時間処理のデモ
 簡単なノイズ・キャンセラの実時間処理のデモです. 記述言語にはFreeBASICを用いています.(A/D・D/Aの処理以外はC言語でも記述可能、FreeBASIC/C言語の混用可能です)
ScilabとFreeBASICのシミュレーション・プログラムも含まれています.
audiokit_demo02.zip (35Mbyte)

●FreeBASICとC言語を混用して作成したプログラムのデモ
 適応エンファシス・フィルタの実時間処理のデモです. FreeBASICとC言語を混用して作成しています.
A/D・D/Aの処理はFreeBASIC、適応エンファシスはC言語で作成したDLL(Dynamic Link Library)でおこなっています. C言語での信号処理を変更してもFreeBASIC側を修正・再コンパイルする必要はありません.(Cで作成したDLLの入れ替えのみでO.K.)
このプログラムはコマンドライン・プログラムですがFreeBASICでWindowsのGUIプログラムを作成することも可能です.
Scilabのシミュレーション・プログラムも含まれています.
audiokit_demo03.zip (960Kbyte)

●Windows GUIの実時間処理プログラムのデモ
 FreeBASICを用いて作成したGUIの実時間処理プログラムのデモです. C言語を混用したサンプル・プログラムも含まれています. FreeBASICを使えばWindowsのAPIやGUIプログラミングのお作法など知らなくても簡単にGUIプログラムが作れてしまいます. いわゆるRAD (Rapid Application Development) ツールを使う必要もありません.
研究開発で使うプログラムでは実時間動作中のグラフ描画・表示更新やパラメータ変更程度のことが出来れば良いのですから、FreeBASICで必要十分です.
 プログラムの処理内容は適応フィルタを用いたインパルス・レスポンス測定です. オーディオ・インターフェースの入出力をケーブルで短絡(ループバック)接続すれば、遅延(latency)とその変動(ドリフト)の測定・観測が出来ます. 普通のPC内蔵オーディオ・インターフェースや廉価なUSB接続の外付けオーディオ・インターフェースのlatencyとそのドリフトの大きさに驚かれるかもしれませんが、これが現在のWindows PCの実力です.(品質の良く無いインターフェースは相関技法や畳み込みを用いた処理には使えません)
AudioKitでは動作の安定した低遅延のUSBオーディオ・インターフェースをセットにしています.
audiokit_demo04.zip (12Mbyte)

●GUIの各種プログラムのデモ
 FreeBASICを用いて作成した簡単なGUIプログラムのデモです.(マウス操作、オーディオ入力信号の波形表示、FFTスペクトル表示)
audiokit_demo05.zip (12Mbyte)






●オーディオ・インターフェースの情報表示のデモ
 FreeBASICを用いて作成したPCのオーディオ・インターフェースの情報表示のデモ・プログラムです. MME(windows MultiMedia Extensions)とASIOのデバイス名、チャネル名等をリスト表示します.
ハウリング・キャンセラのデモ・プログラムの実行にはASIO対応のオーディオ・インターフェースが必要ですので、このプログラムであらかじめチェックしてください.
audiokit_demo06.zip (420Kbyte)





●ハウリング・キャンセラのデモ
 適応ハウリング・キャンセラのデモ・プログラムです. Windows PCとASIO対応の廉価なUSBオーディオ・デバイスを用いて簡単にハウリング抑圧の実験が出来ます.
ハウリング・キャンセラの基本構成のみを実装したもので、遅延・音質等の性能は良くありませんがピーク利得10dB程度でも本当にハウリング抑圧が可能であることをご確認いただけます.
audiokit_demo07.zip (14Mbyte)
asio_canceller2.exe (820Kbyte) 改良版実行プログラム


AudioKit 製品概要


製品構成
対応OS
価格
※ 製品仕様は予告無く変更する場合がありますのでご了承下さい.
| ← back | ↑top |
| home |