OpenTk.NetStandard を使用してキャプチャしたオーディオを NetCore C# の適切な .WAV ファイルに保存する方法を見つけるのは非常に困難です。
私が探しているのは、Raspberry piで実行しているときに機能するソリューションであるため、NAudioまたはWindows固有の方法では問題が解決しません。
opentk を使用してオーディオをキャプチャする方法を示す他のいくつかの SO 回答を見つけましたが、 wav ファイルに保存する方法については何もありません。
これは、別の SO 質問から取得したマイクからデータを読み取るコードの抜粋です。AudioCapture クラスは次のようになります。
const byte SampleToByte = 2;
short[] _buffer = new short[512];
int _sampling_rate = 16000;
double _buffer_length_ms = 5000;
var _recorders = AudioCapture.AvailableDevices;
int buffer_length_samples = (int)((double)_buffer_length_ms * _sampling_rate * 0.001 / BlittableValueType.StrideOf(_buffer));
using (var audioCapture = new AudioCapture(_recorders.First(), _sampling_rate, ALFormat.Mono16, buffer_length_samples))
{
audioCapture.Start();
int available_samples = audioCapture.AvailableSamples;
_buffer = new short[MathHelper.NextPowerOfTwo((int)(available_samples * SampleToByte / (double)BlittableValueType.StrideOf(_buffer) + 0.5))];
if (available_samples > 0)
{
audioCapture.ReadSamples(_buffer, available_samples);
int buf = AL.GenBuffer();
AL.BufferData(buf, ALFormat.Mono16, buffer, (int)(available_samples * BlittableValueType.StrideOf(_buffer)), audio_capture.SampleFrequency);
AL.SourceQueueBuffer(src, buf);
// TODO: I assume this is where the save to WAV file logic should be placed...
}
}
どんな助けでも大歓迎です!