波の読み取り、変更、書き込みにNAudioを使用したいと思います。このライブラリにあるWaveファイルのサンプルを個別に取得して設定するための直接アクセスはありますか?たとえば、wavファイルを開きたい場合は、すべてのチャンネルで5番目のサンプルの値を浮動小数点として取得したいと考えています。私はまた、これらの5番目のサンプルをどのように変更する方法があるのか天気を知りたいと思っています。その後、この修正された結果をどのように保存することができますか?どうすればこのことができるのか、私を助けて見せることができますか?私は今までに何のドキュメンテーションも見つけていませんでしたか?ありがとうございました。NAudio - 個々のサンプルへのアクセスと変更
0
A
答えて
3
はい、NAudioは、個々のオーディオサンプルにアクセスできるように設計されています。しかし、さまざまなオーディオフォーマット(ビット深度、圧縮タイプなど)があるので、これを行う普遍的な方法はありません。 WaveFileReader
クラスを使用すると、生のバイトデータにアクセスできます。その後、各バイトのペアを自分で16ビットのサンプルに変換したり、NAudioヘルパークラスを利用して、16ビットオーディオ(オーディオが16ビットであることが前提)でより簡単に作業できるようにします。次に、WaveFileWriter
クラスを使用して、修正されたオーディオをディスクに書き戻します。あなたはフロートなどのオーディオに対処したい場合は
また、あなたは新しいAudioFileReader
クラスを使用することができ、それは、Readメソッド伝わってくるよう、それは非常に簡単にフロートとして各サンプルの値を調べることが可能おり、ISampleProvider
を実装しています。あなたはその読む方法ソースAudioFileReader
とが調べから読み込み、オーディオ変更し、独自のISampleProvider
作成します。
var reader = new AudioFileReader();
var mySampleProvider = new MySampleProvider(reader);
WaveFileWriter.CreateWaveFile(mySampleProvider, "example.wav");
...
class MySampleProvider: ISampleProvider
{
private readonly ISampleProvider source;
public MySampleProvider(ISampleProvider source)
{
this.source = source;
}
public int Read(float[] buffer, int offset, int count)
{
int samplesRead = source.Read(buffer, offset, count);
// TODO: examine and optionally change the contents of buffer
return samplesRead;
}
public WaveFormat WaveFormat
{
get { return source.WaveFormat; }
}
}
関連する問題
- 1. VBAへのアクセス個々のレコードへの配列の変換
- 2. MIPSの個々のビットへのアクセス
- 3. 色の変更個々のタブ
- 4. Python:タプルのリストの辞書の個々の値へのアクセス
- 5. JavaScriptエラーの個々のスタイル要素へのアクセス
- 6. 個々のAzureクラウドサービスのエンドポイントにアクセス
- 7. Gmailの個々のメールへのリンク
- 8. 変換不明個々のデータフレームへのDictインデックスの数
- 9. 個々のウィジェットにアクセスするGlade GTK
- 10. データグリッドビューの行の個々のセルのスタイルを変更する
- 11. mysqlの個々のレコードの更新
- 12. グリフ内の個々の文字の色を変更する
- 13. 個々のナビゲーション・ドロワー・アイコンのアイコンの色を変更する
- 14. 個々のフィールドのEntityStateの変更を確認する
- 15. didBeginContact内の個々のノードのテクスチャを変更する
- 16. matplotlib contourfプロットの個々の点のアルファ値を変更する
- 17. JPanelの個々のコンポーネントのJavaサイズ変更
- 18. vhostへのアクセスがMassTransit Sample-RequestResponseサンプルで
- 19. Google Charts - 個々の棒の色を変更する
- 20. Xcode:UIPickerView個々の行の背景色を変更する
- 21. ハイチャートは個々のバーの色を変更します
- 22. ttk.Combobox:個々のアイテムのフォントを変更できますか?
- 23. Flexの個々のTextArea/TextEditor行を変更しますか?
- 24. JSFでデータテーブルの個々の行を変更する
- 25. テーブルの個々のセルをJavaScriptで変更する方法
- 26. Perl HList:個々のアイテムのバックグラウンドを変更する
- 27. UWP/XAMLデータバインディング内の個々のアイテムを変更する方法
- 28. DDD:モデルへの変更の保存とリポジトリへのアクセス
- 29. jQuery個々の要素のページ移動とページ変更の前に
- 30. ハイチャート:個々のプロットサイズを変更できますか?
私見を、NAudioは、あなたが-何をしているかのようなもののためにやり過ぎです。たぶんこれは:http://www.codeproject.com/Articles/35725/C-WAV-file-class-audio-mixing-and-some-light-audio –
私はその特定のプロジェクトに気付きましたが、それ以上はサポートしていませんモノラルおよびステレオのwav-sよりも優れています。もしあなたがこの知識を持っていれば、それらのサンプルに到達する方法を教えてください。 –
マルチチャンネルのwavファイルはすべてのライブラリでサポートされていないので、サンプルから始めてそこから作業を進めてください。ここではnaudioの作者がいますが、おそらくその話題について少し明るい話をするでしょう。 –