13

私はC#(VS2008)でmp3(他のフォーマットはいいでしょうが、最低でもmp3)をロードでき、ピッチに影響を与えずに再生速度(テンポ)を調整できるwinformアプリを作成しようとしています。他のオーディオエフェクトは本当に必要ありません。DirectShow を使用してみましたが、タイム ストレッチ機能を提供していないようです。irrklangを組み込むことはできましたが、タイム ストレッチ機能もないようです。それで、私はSoundTouchに移りました。それには確かに機能がありますが、C# で実装する方法がよくわかりません。

この数日後、SoundTouch DLL で DLLImport を使用し、バージョン番号を正常に取得できるようになっただけです。現時点では、SoundTouch でやろうとしていることを実行できるかどうかさえわかりません。SoundTouch または私が探している機能を備えた別のライブラリを実装する方法について、誰かがガイダンスを提供できますか? ありがとうございました。

4

4 に答える 4

9

誰かがまだ興味を持っている場合は、SoundTouch ライブラリの .Net ラッパー クラスを作成しました。 http://code.google.com/p/soundtouchnet/

于 2010-11-16T23:34:36.430 に答える
6

その答えは、SoundTouch はあなたがやりたいことを実行できるということです。

サンプルプログラムSoundStretchを見てください。SoundTouch ライブラリを使用してテンポを変更する (ピッチを変更せずに) だけでなく、ピッチを変更する (テンポを変更せずに) および再生レートを変更する (ピッチとテンポの両方を変更する) 例を示します。ソースコードを調べて、必要なものを使用します。

唯一の問題は、mp3 形式を使用しており、これは WAV 形式を使用しているため、最初にファイルを変換する必要があることです。この種のことを行うために使用される方法の性質上、任意の種類の圧縮ファイルに対して直接必要なことを行うプログラムを見つけることはできないと思います。プロセス全体をもう少し詳しく調べたい場合は、フェーズボコーダーを使用します。

于 2010-02-23T19:35:34.290 に答える
4

C#でSoundTouchを使用する別の方法は、BASS.NETラッパーとBASS_FXプラグインでBASSサウンドライブラリ( http://un4seen.com )を使用することです。BASS_FXはSoundTouchを使用してTimeStretchingを実行します。

于 2011-02-20T21:26:49.120 に答える
-1

C# から呼び出す方法の 1 つを次に示します。SoundTouch DLL をラップするには、C++ で COM ラッパーを作成する必要があります。COM ラッパーの準備ができたら、それを .NET (C#) プロジェクトにインポートし、COM ラッパーを介して基礎となる SoundTouch DLL を呼び出すことができます。お役に立てれば。

于 2010-03-08T08:12:52.760 に答える