Kennt jemand eine Möglichkeit, die durchschnittliche Amplitude einer .wav-Datei mit C# zu erhalten (selbst wenn dies bedeutet, dass ein externes Befehlszeilenprogramm aufgerufen und die Ausgabe analysiert wird)? Vielen Dank!Mittlere Amplitude einer .wav in C#
Antwort
Hier ist ein Snip, der ein Stereo-Wav einliest und die Daten in zwei Arrays ablegt. Es ist nicht getestet, weil ich einige Codes zu entfernen hatte (Umwandlung einen gleitenden Durchschnitt auf Mono und berechnet)
/// <summary>
/// Read in wav file and put into Left and right array
/// </summary>
/// <param name="fileName"></param>
private void ReadWavfiles(string fileName)
{
byte[] fa = File.ReadAllBytes(fileName);
int startByte = 0;
// look for data header
{
var x = 0;
while (x < fa.Length)
{
if (fa[x] == 'd' && fa[x + 1] == 'a' &&
fa[x + 2] == 't' && fa[x + 3] == 'a')
{
startByte = x + 8;
break;
}
x++;
}
}
// Split out channels from sample
var sLeft = new short[fa.Length/4];
var sRight = new short[fa.Length/4];
{
var x = 0;
var length = fa.Length;
for (int s = startByte; s < length; s = s + 4)
{
sLeft[x] = (short)(fa[s + 1] * 0x100 + fa[s]);
sRight[x] = (short)(fa[s + 3] * 0x100 + fa[s + 2]);
x++;
}
}
// do somthing with the wav data in sLeft and sRight
}
Wenn die WAV-Datei mono ist, könnte ich einfach sRight [x] = (kurz) auskommentieren (fa [s + 3] * 0x100 + fa [s + 2]); Linie und ändern s = s + 4 bis s = s +2? Ich bin nicht sehr vertraut mit dem WAV-Format. Vielen Dank! – BarrettJ
Ich auch nicht, aber ich denke, du könntest sRight einfach überspringen. – Nifle
Nehmen Sie die oben aufgeführten Änderungen vor und deklarieren Sie sLeft als "var sLeft = new short [fa.Length/2];" funktioniert in der Tat für Mono-Dateien. – BarrettJ
Normalerweise wird die root-mean-squared Methode verwendet, um die "mittlere" Amplitude von sin (x) -ähnlichen Signalen zu berechnen.
Die NAudio-Bibliothek für .NET klingt wie Ihre beste Wette. Es ermöglicht den Zugriff auf die Wellenform einer Audiodatei, die zur Berechnung des Werts der mittleren Amplitude durchlaufen werden kann.
- 1. finden Sie die Frequenz Amplitude und Phase einer WAV-Datei von fft
- 2. Mittlere Shift-Implementierung in C++
- 3. Streifen WAV-Header in C#
- 4. WAV-Dateianalyse C (libsndfile, fftw3)
- 5. hören WAV-Datei C#
- 6. Overlay WAV-Dateien in C#
- 7. Ändern Sie das Volumen einer WAV-Datei in Python
- 8. Werte einer WAV-Datei
- 9. Berechnen Unsicherheit in FFT Amplitude
- 10. Amplitude von AudioRecord
- 11. mittlere Taste/Text in einer Tabellenzelle
- 12. MATLAB - Zeit-Frequenz-Diagramm der .wav-Datei
- 13. Wie bekomme ich Wav-Beispiele aus einer WAV-Datei?
- 14. Lesen und Verarbeiten von WAV-Dateidaten in C/C++
- 15. Abspielen einer einfachen .wav auf einer Ansichtsseite?
- 16. Optimiere mittlere äußere Produkte
- 17. Das mittlere Objekt einer Liste finden
- 18. Wie entferne ich mittlere Leerzeichen in einer Umgebungsvariablen
- 19. C - Schreiben eines Puffers als Binärdatei (wav)
- 20. Was bedeutet int & mittlere
- 21. Mittlere Varianz-Optimierung
- 22. Mittlere quadratische Verschiebung
- 23. Decodieren von DTMF aus einer WAV-Datei
- 24. Display WAV-Datei Tonhöhe
- 25. Finden Sie ein Vorkommen einer WAV-Probe in einem anderen WAV?
- 26. android AudioRecord Amplitude von MIC lesen
- 27. Wie das mittlere Zeichen in einer Zeichenfolge mit Regex übereinstimmen?
- 28. Java - AudioInputStream - Schneiden einer WAV-Datei
- 29. Wie Stille vor einer WAV-Datei hinzufügen
- 30. Graphen/Plotten einer Wav-Datei java
zu erwähnen vergessen, dass die .wav-mono ist, wenn, dass die Situation nicht leichter/von anderen unterscheidet. – BarrettJ