Je veux modifier un fichier WAV en 8 kHz et 8 bits à l'aide de Naudio. mais lorsque je joue au fichier de sortie, le son n'est que sizzle. Mon code est-il correct ou ce qui ne va pas? P> Si je définis les formats d'onde sur WaveFormat (44100, 16, 1), cela fonctionne bien. P> Merci. P> P>
3 Réponses :
Quelques pointeurs:
Voici un exemple de code indiquant comment convertir d'un format à un autre. N'oubliez pas que vous devrez peut-être faire la conversion en plusieurs étapes en fonction du format de votre fichier d'entrée: P>
using (var reader = new WaveFileReader("input.wav")) { var newFormat = new WaveFormat(8000, 16, 1); using (var conversionStream = new WaveFormatConversionStream(newFormat, reader)) { WaveFileWriter.CreateWaveFile("output.wav", conversionStream); } }
Mark - Pourriez-vous élargir un peu les détails de la rédaction de la rédaction? Quelle est la raison d'utiliser un filtre ChebysHev (par opposition à Butterworth ou à un autre type de passe-passe, par exemple)? Lorsque vous descendez, faites-vous défaire, ou appliquez-vous une moyenne entre des échantillons?
Le code suivant a résolu mon problème avec G.711 MU-Law avec une extension de fichier VOX au fichier WAV. J'ai continué à obtenir une erreur "No Riff en-tête" avec WaveFilereader Différemment.
FileStream fileStream = new FileStream(fileName, FileMode.Open); var waveFormat = WaveFormat.CreateMuLawFormat(8000, 1); var reader = new RawSourceWaveStream(fileStream, waveFormat); using (WaveStream convertedStream = WaveFormatConversionStream.CreatePcmStream(reader)) { WaveFileWriter.CreateWaveFile(fileName.Replace("vox", "wav"), convertedStream); } fileStream.Close();
openFileDialog openFileDialog = new openFileDialog(); openFileDialog.Filter = "Wave Files (*.wav)|*.wav|All Files (*.*)|*.*"; openFileDialog.FilterIndex = 1; WaveFileReader reader = new NAudio.Wave.WaveFileReader(dpmFileDestPath); WaveFormat newFormat = new WaveFormat(8000, 16, 1); WaveFormatConversionStream str = new WaveFormatConversionStream(newFormat, reader); try { WaveFileWriter.CreateWaveFile("C:\\Konvertierten_Dateien.wav", str); } catch (Exception ex) { MessageBox.Show(String.Format("{0}", ex.Message)); } finally { str.Close(); } MessageBox.Show("Konvertieren ist Fertig!"); }