2009-05-11 6 views
2

Je dois encoder un fichier wav dans un autre format de fichier (pcm). Ce format a les propriétés suivantes: 8 kHz, 16 bits.Encoder le fichier wav à pcm

Quelqu'un at-il une idée de comment faire cela en C# ou vb?

Répondre

4

Alvas audio library.

Voici les principales caractéristiques.

  • Recorder permet:
    • enregistrer les données audio non compressées (PCM)
    • enregistrement des données audio compressées: IMA ADPCM, Microsoft ADPCM, CCITT A-Law, CCITT u-Law, GSM 6.10, MPEG Layer -3 (mp3) et autres;
    • enregistrer des données dans le flux (flux de fichiers, flux de mémoire);
    • mettre en pause et reprendre l'enregistrement;
    • obtenir la position sonore actuelle;
    • enregistrer des données sur n'importe quel enregistreur installé dans le système (plusieurs cartes son).

  • Player permet:
    • lire les données audio non compressées (PCM);
    • lire des données audio compressées: IMA ADPCM, Microsoft ADPCM, CCITT A-Law, CCITT Droit, GSM 6.10, MPEG Layer-3 (mp3) et autres; Lire les données du flux (flux de fichier, flux de mémoire);
    • lire des données audio mixtes;
    • pause et reprendre la lecture;
    • obtenir la position sonore actuelle;
    • lire les données de n'importe quel lecteur installé dans le système (plusieurs cartes son).

  • Mettre en place des contrôles de mixage:
    • ligne de sélection de source pour l'enregistrement;
    • modifier le volume de la ligne source pour l'enregistrement;
    • réglage supplémentaire des commandes. Par exemple, "Mic Boost";
    • Modifier le volume principal pour la lecture;
    • lecture en sourdine.

  • Modification
    • changer la vitesse des données audio;
    • Modifier le volume des données audio; Joignez plusieurs morceaux d'audio en un seul;
    • couper une partie du flux audio;
    • insérer une pièce dans le flux audio;
    • supprimer une partie du flux audio; Créer un format audio à partir du tableau d'octets;
    • insérer et mélanger des données audio dans des données audio principales avec décalage spécifié plusieurs fois;
    • flux d'onde audio inverse; Fractionner le flux audio stéréo en deux flux mono;
    • fusionner deux flux audio mono en un seul stéréo.
    • Plusieurs concaténation de fichiers audio.

  • Conversion
    • Convertir les données audio d'un format audio à l'autre.
    • Convertir un flux d'onde audio en flux mp3.
    • Convertissez Dialogic .vox (adpcm) en Streaming mp3.
    • Modifier le flux d'onde en flux MP3. si le flux Wave contient des données MPEG Layer 3. Lecture, enregistrement et conversion du format RAW sans en-tête (SLINEAR, etc.) (utilisé dans le PBX Asterisk).
    • Lecture et extraction de données audio à partir de flux Avi.
    • Coder et décoder les données au format Dialogic .vox (adpcm) (utilisées dans le PBX Asterisk).
    • Convertir flux d'ondes audio au flux mp3
    • Convertir Dialogic .vox (ADPCM) flux à Mp3

  • Divers
    • Voir le niveau du signal sonore d'entrée.
    • Bibliothèque de signes avec un nom fort. bibliothèque audio peut être ajouté au GAC
-1

Je ne sais pas exactement ce que vous voulez faire. Les fichiers WAV sont (généralement) juste des wrappers autour de données pcm non compressées. Mais, que vous vouliez accéder aux données ou écrire des fichiers PCM sans en-tête RAW, vous pouvez utiliser libsndfile. J'ai trouvé du C# sample code sur les forums de ArsTechnica.

RE: Réponse
Daniel Brückner L'auteur de libsndfile a également écrit libsamplerate, ce qui peut simplifier rééchantillonnage.

2

Un fichier Wave non compressé contient des données PCM simples plus quelques métadonnées - vous pouvez trouver une description here sur Wotsit.org.

Si les fréquences d'échantillonnage, les résolutions et le nombre de canaux correspondent, vous pouvez supprimer les métadonnées. Si elles ne correspondent pas, vous devrez rééchantillonner le fichier Wave, mais ce n'est pas une tâche triviale, si vous voulez qu'il soit bien fait (Le downsampling nécessite un filtrage passe-bas des données afin d'éviter l'aliasing à cause du Nyquist–Shannon sampling theorem et les deux - upsampling et downsampling - nécessitent une bonne interpolation - idéalement sinc interpolation