2009-08-18 6 views
1

Quelle est la meilleure façon de convertir divers formats audio en PCM?Conversion audio C#

Par exemple: mp3, evrc, ogg vox.

Existe-t-il une bibliothèque qui me permettra de mettre cela en œuvre assez facilement?

EDIT:

Je suppose que ma question initiale était pas vraiment ce que je avais besoin. La plupart des bibliothèques que j'ai trouvées sont des convertisseurs de fichiers. Ce dont j'ai besoin, c'est d'un convertisseur de blocs, où je passe dans un bloc de 1 Ko de données vox et il renvoie son bloc PCM converti. Bien sûr, je vais devoir dire au convertisseur de quel type de données il s'agit et diverses informations sur les codecs.

La solution que je vais faire est de sauvegarder et de VOIP formats dans un format wav commun et de lire ce fichier conforme en temps réel. Je pensais qu'il devrait y avoir un moyen facile de le faire parce que tout l'audio est finalement transformé en PCM avant d'être sorti de toute façon.

+1

Oui, il y a. Essayez de rechercher "Audio Conversion C#" sur Google. –

+0

@Sean: pourquoi ne pas faire de votre commentaire une réponse réelle, puisque c'est une réponse réelle? – MusiGenesis

+0

Parce que "utiliser google" n'est pas une réponse acceptable (basée sur la FAQ de SO). –

Répondre

3

Vous pouvez utiliser NAudio pour transmettre des blocs d'audio compressé à tous les codecs ACM que vous avez installés sur votre machine. Vous devez cependant savoir comment créer la structure WAVEFORMAT appropriée pour décrire le type audio compressé correctement.

0

Je ne connais pas de lib qui fait tout mais nous faisons mp3-> wav en utilisant madxlib.

C'est gratuit mais je suggère de payer les 10 $ pour le SDK car il est livré avec de la documentation et des exemples.

0

Il existe un didacticiel C# sur youtube qui pourrait vous être utile. Il montre comment utiliser une bibliothèque audio spécifique appelée alvas.audio qui fait vraiment des choses bien avec de l'audio. J'ai trouvé la vidéo très éducative. La bibliothèque audio est complètement écrite en C#. Regardez la vidéo pour plus de détails: http://www.youtube.com/watch?v=2DIQECXFPeU

0

Découvrez AVBlocks SDK for .NET. Il prend en charge plusieurs formats audio, et les transformations audio comme l'audio multicanal à l'audio stéréo, le rééchantillonnage et la conversion de bitrate.

1

Try code modifié de http://alvas.net/alvas.audio,tips.aspx#tip91

static void AnyToWav(string fileName) 
    { 
     DsReader dr = new DsReader(fileName); 
     IntPtr formatPcm = dr.ReadFormat(); 
     byte[] dataPcm = dr.ReadData(); 
     dr.Close(); 
     WaveWriter ww = new WaveWriter(File.Create(fileName + ".wav"), AudioCompressionManager.FormatBytes(formatPcm)); 
     ww.WriteData(formatPcm); 
     ww.Close(); 
    }