Question

J'ai un modem USB ZyXEL Omni56K Duo et que vous souhaitez envoyer et recevoir des flux voix, mais pour atteindre une qualité adéquate, je dois probablement mettre en œuvre un codage « ZyXEL ADPCM » car PCM plaine offre trop faible taux d'échantillonnage pour transmettre même à moyen la voix de la qualité, et il ne fonctionne pas par USB soit (probablement parce que même ce débit est trop élevé pour le convertisseur USB-série en elle).

Ces chiffres mystérieux codec dans toutes les bibliothèques liées au WAV Microsoft comme l'un des nombreux codecs théoriquement pris en charge par celui-ci, mais j'ai trouvé aucune réalisation.

Quelqu'un peut-il proposer une mise en œuvre dans toutes les langues ou peut-être une documentation? L'écriture d'un algorithme de décodage personnalisé mu-law ne sera pas un problème pour moi.

Merci.

Était-ce utile?

La solution

Je ne sais pas comment ZyXEL ADPCM varie d'autres saveurs de ADPCM, mais différentes implémentations ADPCM peut être trouvé avec quelques recherches Google.

Cependant, la vraie raison de mon post est la raison pour laquelle le choix de ADPCM. ADPCM est différentiel adaptatif de modulation par impulsions codées. Cela signifie que les données transmises est la différence dans les échantillons, et non pas la valeur actuelle (qui est aussi la raison pour laquelle vous voyez cette grande compression). Dans un environnement propre, sans perte de bits (c.-à-disque), cela est bien beau. Cependant, dans un environnement de diffusion en continu, son généralement admis que les bits peuvent être périodiquement mutilées. Tout dommage bits aux données et vous entendrez des artefacts statiques ou d'autres audio très rapidement et le plus souvent, assez mal.

mécanisme de remise à zéro de ADPCM est basée non encadré, ce qui signifie que les problèmes audio peuvent se poursuivre pendant une longue période de temps en fonction de l'encodeur. Le code de réinitialisation est généralement un ensemble de 0s (16 vient à l'esprit, mais ses années que j'ai écrit mes propres ports).

ADPCM dans l'environnement de téléphonie convertit généralement un échantillon PCM à 12 bits à un échantillon ADPCM 4 bits (pas mal). Quant à la qualité audio ... pas mal pour les conversations téléphoniques et la parole, mais la plupart des gens, dans un test aveugle, peut facilement détecter la baisse de la qualité.

Dans votre dernière phrase, vous lancer une balle courbe dans la question. Vous commencez à parler mulaw. mulaw est une implémentation de PCM qui prend un échantillon de 12 bits et le transforme en utilisant une échelle logarithmique pour un échantillon de 8 bits. C'est le mécanisme typique de compression pour TDM (téléphone) networkworks en Amérique du Nord (la plupart du reste du monde utilise un algorithme similaire appelé ALaw).

Alors, je suis confus ce que vous en train d'essayer de trouver.

Vous avez également mentionné Microsft et implémentations WAV. Vous le savez sans doute, mais juste au cas où, que WAV est juste un wrapper autour des données audio qui fournit le format, les informations d'échantillonnage, le canal, la taille et d'autres informations utiles. Sans WAV, AU ou autres emballages impliqués, mulaw et ADPCM sont généralement présentées sous forme de données brutes.

Un autre conseil si vous implémentez ADPCM. Comme je l'ai déjà dit, ils utilisent 4 bits pour représenter un échantillon de 12 bits. Ils s'en tirer ce par les deux parties ayant une table de multiplication. Votre position dans la table change en fonction de la valeur de 4 bits (en d'autres termes, la valeur est à la fois multiple contre une taille de pas et utilisée pour déterminer la nouvelle taille de l'étape). Je l'ai vu une variété d'algorithmes utilisent des tables légèrement différentes (pas d'idée pourquoi, mais vous voyez généralement les envoyés et reçus des signaux parasites lentement biais). L'une des plus anciennes, des paquets sonores populaires était différent de ce que je voyais généralement des fournisseurs de matériel de téléphonie.

Et, pour trivia plus inutile, il y a plusieurs saveurs de ADPCM. Les écarts impliquent la table, la taille de l'échantillon et la source taille de l'échantillon de destination, mais je n'ai jamais eu besoin de travailler avec eux. Juste saveurs documenté que j'ai trouvé quand je l'ai fait ma recherche sur Internet pour les spécifications pour les différents formats audio utilisés dans la téléphonie.

Autres conseils

Tuyauteries votre pcm par ffmpeg -f u16le -i - -f wav -acodec adpcm_ms - travaillera probablement.

http://ffmpeg.org/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top