Qualcuno conosce un modo per ottenere l'ampiezza media di un file .wav usando C# (anche se ciò significa chiamare un programma da riga di comando esterno e analizzare l'output)? Grazie!Ampiezza media di un .wav in C#
risposta
Ecco uno snip che legge in un wav stereo e inserisce i dati in due array. E 'non provato perché ho dovuto togliere un po' di codice (la conversione in mono e calcolare una media mobile)
/// <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
}
Se il file wav è mono, sarei in grado di commentare solo sRight [x] = (breve) (fa [s + 3] * 0x100 + fa [s + 2]); linea e cambia s = s + 4 a s = s +2? Non ho molta familiarità con il formato wav. Grazie! – BarrettJ
Neanche io, ma penso che potresti semplicemente saltare sRight. – Nifle
Apportare le modifiche che ho elencato sopra e dichiarare sLeft come "var sLeft = new short [fa.Length/2];" funziona davvero per i file mono. – BarrettJ
Normalmente il metodo root-mean-squared viene utilizzato per calcolare l'ampiezza "media" dei segnali sin (x) -like.
La libreria NAudio per .NET suona come la soluzione migliore. Consente l'accesso alla forma d'onda di un file audio, che può eseguire il looping per calcolare il valore dell'ampiezza media.
- 1. Come posso determinare l'intensità del suono di un file WAV?
- 2. Ricorsiva funzione di viaggio di ampiezza in Java o C++?
- 3. ricerca in ampiezza ramificazione fattore
- 4. Come decodificare mp3 in wav usando lame in C/C++?
- 5. Python ricerca in ampiezza ottimizzazione
- 6. Calcolare l'incertezza in FFT ampiezza
- 7. Albero binario Ricerca in ampiezza
- 8. come si gioca a un file wav in python?
- 9. Flash player .wav
- 10. Come stampare un file wav
- 11. Analisi file WAV C (libsndfile, fftw3)
- 12. Trova un'occorrenza di un campione WAV all'interno di un altro WAV?
- 13. Genera wav in PHP
- 14. Come ottenere una media in C++?
- 15. Come convertire un wav stereo in mono
- 16. Algoritmi OpenMp C++ per min, max, media, media
- 17. Implementazione media del turno in C++
- 18. Come ottengo il volume/ampiezza corrente in un MediaPlayer Android?
- 19. Croce (C/C++) Libreria audio per MP3, AAC, WAV
- 20. Come posso convertire da midi a wav/mp3 in C#?
- 21. Java - file audio wav di downsampling
- 22. splitting file wav in python
- 23. Trascrizione musicale di file Wav in Java
- 24. Riproduzione di file WAV in IE
- 25. Converti array di byte in file wav
- 26. Utilizzo di AudioTrack in Android per riprodurre un file WAV
- 27. Come tracciare il percorso in una ricerca di ampiezza prima?
- 28. Convertire il file .wav in .mp3
- 29. mp3 alla conversione wav in java
- 30. Converti wav in ogg vorbis in Python
dimenticato di dire che il wav è mono, se questo fa la situazione più facile/diverso. – BarrettJ