DirectShow .NET で、8khz のサンプル レートでセカンダリ バッファを作成するバグに遭遇しました。代わりに8.1khz。
これをグーグルで調べたところ、PC のサウンドカードに応じて、8khz オーディオを自分で 48khz または 44.1khz にアップサンプリングする必要があることがわかりました。
これに使用できる C# ライブラリまたは汎用アルゴリズムはありますか?
ありがとう!!
ローイ
DirectShow .NET で、8khz のサンプル レートでセカンダリ バッファを作成するバグに遭遇しました。代わりに8.1khz。
これをグーグルで調べたところ、PC のサウンドカードに応じて、8khz オーディオを自分で 48khz または 44.1khz にアップサンプリングする必要があることがわかりました。
これに使用できる C# ライブラリまたは汎用アルゴリズムはありますか?
ありがとう!!
ローイ
Alvas.Audioについては、以下のコードを参照してください
byte[] data48khz = AudioCompressionManager.Convert(format8khz, format48khz, data8khz, false);
シークレットラビットコードをいつでもC#に移植できますか?
または、プラットフォーム呼び出しを介してオーディオ圧縮マネージャーを直接使用するのはどうですか?
「サウンドの再生が速すぎる」という問題は、サウンドカード固有のものである可能性があります。どの OS を使用しているかはわかりませんが、Windows はサンプルをサウンドカードに送る前に、すべてのオーディオ ストリームを 44 または 48khz にネイティブにアップサンプリングしていると思います (そのため、他のすべてのストリームと適切にミックスできます)。したがって、改善が得られるかどうか、独自のコードでアップサンプリングするかどうかはわかりません。
別の PC (別の OS を実行している) を使用するか、USB ヘッドフォンを接続して、この問題が一貫しているかどうかを確認しましたか?