Naudio: Mikrofon -Audio erfassen und auf einem C# MemoryStream als Wellenformat speichern

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Naudio: Mikrofon -Audio erfassen und auf einem C# MemoryStream als Wellenformat speichern

by Anonymous » 17 Mar 2025, 14:41

Ich versuche, einen Code in C#mit der Naudio -Bibliothek zu schreiben. Dies besteht darin, das Audio aus dem Mikrofon aufzuzeichnen und an eine Cloud -API zu senden. Die API -Methode empfängt einen Speicherstream. Ich kann es beim Laden der aufgezeichneten Datei erfolgreich zum Laden bringen. < /P>

Code: Select all

var recResult = speechToText.Recognize(
audio: new MemoryStream(File.ReadAllBytes("audio-file.wav")),
model: "pt-BR_Multimedia",
contentType: "audio/wav");
< /code>
Was ich jetzt versuche, ist es, das Speichern der WAV -Datei zu [url=viewtopic.php?t=15143]vermeiden[/url] und den MemoryStream direkt aus dem Aufnahmeprozess zu senden. Objekt;
memstream ist ein memoryStream -Objekt < /p>
void OnDataAvailable(object sender, WaveInEventArgs e)
{
if (InvokeRequired)
{
//Debug.WriteLine("Data Available");
BeginInvoke(new EventHandler(OnDataAvailable), sender, e);
}
else
{
//this is my new MemoryStream object
memStream.Write(e.Buffer, 0, e.BytesRecorded);

//this is the reguler working writer object
writer.Write(e.Buffer, 0, e.BytesRecorded);

int secondsRecorded = (int)(writer.Length / writer.WaveFormat.AverageBytesPerSecond);
if (secondsRecorded >= 5)
{
StopRecording();
}
else
{
progressBar1.Value = secondsRecorded;
}
}
}
Während dies gut kompiliert und ausgeführt wird, wird der MemoryStream nicht von der API akzeptiert, die zu einem Laufzeitfehler führt (schlechte Anfrage). /> Danke,
Márcio < /p>

Top