Frage

Ich habe einen ZyXEL USB Omni56K Duo Modem und möchten senden und empfangen Stimme auf sie ströme, aber angemessene Qualität zu erreichen ich wahrscheinlich einige „ZyXEL ADPCM“ codiert, weil schlicht PCM liefert zu klein Abtastrate zu übertragen, auch Medium implementieren müssen Qualität Stimme, und es funktioniert nicht über USB entweder (wahrscheinlich, weil auch dieser Bitrate ist zu hoch für USB-Seriell-Konverter in it).

Diese mysteriösen Codec Zahlen in allen Microsoft WAV-bezogenen Bibliotheken als ein von vielen Codecs theoretisch von ihr unterstützt, aber ich fand keine Implementierungen.

Kann jemand bietet eine Implementierung in jeder Sprache oder vielleicht einige Dokumentation? Schreiben eines benutzerdefinierten mu-Gesetz-Algorithmus decodiert wird kein Problem für mich sein.

Danke.

War es hilfreich?

Lösung

Ich bin sicher nicht, wie ZyXEL ADPCM von anderen Aromen von ADPCM variiert, aber verschiedene ADPCM-Implementierungen können mit einiger Google-Suche gefunden werden.

der wahre Grund für meinen Beitrag ist jedoch, warum die Wahl der ADPCM. ADPCM ist Adaptive Differential Pulse Code Modulation. Dies bedeutet, dass die Daten weitergegeben werden, ist der Unterschied in den Proben, nicht der aktuelle Wert (die auch ist, warum Sie so große Kompression sehen). In einer sauberen Umgebung ohne Bit-Verlust (dh Plattenlaufwerk), das ist in Ordnung. Jedoch in einer Streaming-Umgebung, die allgemein angenommen, dass Bits periodisch verstümmelt werden. JedesBit Beschädigung der Daten, und Sie werden hören statische oder andere Audio-Artefakte werden sehr schnell und in der Regel, ziemlich schlecht.

Reset-Mechanismus ADPCM nicht framed basiert, was bedeutet, dass die Audioprobleme für einen längeren Zeitraum weitergehen können am Geber abhängig. Der Reset-Code ist eine in der Regel eine Reihe von 0s (16 in den Sinn kommt, aber es ist schon Jahre her, seit ich meine eigene Ports geschrieben).

ADPCM in der Telefonieumgebung in der Regel wandelt eine 12-Bit-PCM-Probe auf eine 4-Bit-ADPCM-Probe (nicht schlecht). Die Audio-Qualität ... nicht schlecht für Telefongespräche und das gesprochene Wort, aber die meisten Menschen, in einem Blindtest kann die Qualität Tropfen leicht erkennen.

In Ihrem letzten Satz, werfen Sie eine Kurve Ball in die Frage. Sie beginnen zu erwähnen muLaw. muLaw ist eine PCM-Implementierung, die eine 12-Bit-Probe nimmt und wandelt es eine logarithmische Skala auf eine 8 Bit-Abtastung verwendet wird. Dies ist die typische Kompressionsmechanismus für TDM (Telefon) networkworks in Nordamerika (die meisten der Rest der Welt verwendet einen ähnlichen Algorithmus namens ALaw).

Also, ich bin verwirrt, was Sie tatsächlich versuchen zu finden.

Sie Microsft und WAV auch Implementierungen erwähnt. Sie wissen wahrscheinlich, aber nur für den Fall, dass WAV ist nur ein Wrapper um die Audiodaten, das Format liefert, Sampling Informationen, Kanal, Größe und andere nützliche Informationen. Ohne WAV, AU oder andere beteiligt Wrapper, muLaw und ADPCM sind in der Regel als Rohdaten dargestellt.

Ein weiterer Tipp, wenn Sie implementieren ADPCM. Wie ich bereits angedeutet, verwenden sie 4 Bits, um eine 12-Bit-Probe darstellen. Sie weg mit dieser von beiden Seiten eine Multiplikator Tabelle mit. Ihre Position in der Tabelle ändert sich basierend auf dem 4-Bit-Wert (in anderen Worten, ist der Wert sowohl mehrere gegen einen Schrittgröße und verwendet, um herauszufinden, die neue Schrittweite). Ich habe eine Vielzahl von Algorithmen gesehen verwendet leicht unterschiedliche Tabellen (keine Ahnung warum, aber Sie in der Regel die gesendeten und empfangenen Signale langsam sehen die Vorspannung verirrt off). Einer der älteren, populären Sound-Pakete anders war als das, was ich in der Regel Säge von dem Telefonie-Hardware-Anbieter.

Und für mehr nutzlos Trivia gibt es mehrere Varianten von ADPCM. Die Abweichungen betreffen die Tabelle, Quellenprobengröße und Zielstichprobengröße, aber ich habe noch nie eine Notwendigkeit, die Arbeit mit ihnen hatte. Nur Aromen dokumentiert, dass ich gefunden habe, als ich für Spezifikationen für die verschiedenen Audio-Formate verwendet, in der Telefonie meiner Suche im Internet getan hat.

Andere Tipps

Piping Ihre pcm durch ffmpeg -f u16le -i - -f wav -acodec adpcm_ms - wird wahrscheinlich zu arbeiten.

http://ffmpeg.org/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top