• 締切済み

音声波形データのグラフ化について

音声波形データのグラフ化について 開発環境:Visual C# 入力音声データ:ステレオ 16bit 44100HzのWAVデータ 目標:Windows Form上に音声の波形データをグラフ描画(折線グラフ)し、波形エディタのようなガイドライン機能を付加する。 まず、グラフ化を行う際、1秒間に44100個のデータがある場合、データのプロット数が非常に多くなってしまい、秒数次第では波形の全体描画にとても時間がかかってしまうと思うのですが、こういった場合、どのようにグラフ化するとよいのでしょうか? また、波形上に波形エディタのようにガイドラインを表示して、ガイドラインの時間における音声データの出力値も表示したいと思っております。 ガイドラインの移動はトラックバーによる移動を考えているのですが、プロット数が多くなると、上記の問題により再描画が追いつかず、スムーズなガイドライン移動ができません。 現在、グラフライブラリであるNPlotやZedGraphを使用して、グラフ描画を行ってみたのですが、どちらもプロット数が多くなると、描画自体にとても時間がかかるようになってしまい、ガイドラインの移動なんて出来たものではありません。 良いやり方、また、参考になるサイト、サンプルなどありましたら、 どうか教えていただきたく、よろしくお願い致します。

みんなの回答

noname#108260
noname#108260
回答No.1

C#は分からないのでアルゴリズムだけですが、 とりあえず、グラフの範囲というか時間方向の倍率が定まった時点でデータを適当に間引けばいいのではないでしょうか。 ウィンドウの幅はせいぜい2000弱ピクセルなのでそこまで削れば余裕でしょう。 値としては適当にサンプルしても良さそうですが絶対値が最大の値を採用すれば実用的にもいいかと思います。 for文の数千回オーダーのループなので大したこと無いと思いますがダメでしょうか?

関連するQ&A