Die Integration von Sprachsteuerung galt aufgrund der hohen Kosten und des großen Aufwands bisher als schwierige Aufgabe. Dieser Artikel zeigt, dass die Verwendung eines 8-Bit-PIC®-Mikrocontrollers mit einem Pulsweitenmodulator (PWM) eine einfache und kostengünstige Möglichkeit bietet, Sprachsteuerung in eingebettete Systeme zu integrieren.
Eine Methode zur Sprachkodierung ist die adaptive differentielle Pulscodemodulation (ADPCM), ein Verfahren zur Digitalisierung analoger Signale. ADPCM nutzt die hohe Korrelation zwischen aufeinanderfolgenden Sprachabtastwerten und kodiert die Differenz zwischen einem vorhergesagten und dem tatsächlichen Abtastwert. Bei der Wiedergabe oder Dekodierung lassen sich zukünftige Abtastwerte vorhersagen. ADPCM bietet eine effiziente Komprimierung bei gleichzeitig hoher Sprachqualität.
Es gibt verschiedene ADPCM-Algorithmen. Der IMA-Algorithmus (Interactive Multimedia Association) reduziert die mathematische Komplexität erheblich, indem er einige Operationen vereinfacht und gegebenenfalls Nachschlagetabellen verwendet. Dadurch eignet er sich gut für 8-Bit-Mikrocontroller. Da die Wiedergabe im Vordergrund steht, wird ein PC-Programm zur Kodierung verwendet, während die Dekodierung vom Mikrocontroller übernommen wird.
Um die Wiedergabe interaktiv zu gestalten, werden die Sprachaufnahmen in einzelne, adressierbare Dateien aufgeteilt. Beispielsweise werden für die numerische Temperaturangabe die Zahlen eins bis neun, zehn bis neunzehn, zwanzig bis neunundzwanzig, dreißig, vierzig, fünfzig, sechzig, siebzig, achtzig und neunzig in separaten Dateien gespeichert. Beträgt die Temperatur also 32 Grad, werden nacheinander zwei Dateien abgespielt: „dreißigundzwei“. Die einzelnen Sprachdateien werden über ein einfaches Dateisystem gespeichert und abgerufen.
Der Speicherbedarf für Sprachdateien hängt von der Bitanzahl, der Abtastrate und der Datenmenge ab. Für Konferenzqualität sind 16 Bit bei einer Abtastrate von 8000 Abtastungen pro Sekunde erforderlich, was einer Bandbreite von 4000 Hz entspricht. Eine Sekunde Sprachmaterial belegt somit 16.000 Byte.
Nach der Kodierung der Sprachdatei mit dem ADPCM-Algorithmus von IMA reduziert sich die komprimierte Größe auf ein Viertel der ursprünglichen Größe. Je nach benötigter Sprachmenge kann diese im Programmspeicher des Mikrocontrollers oder in einem externen seriellen Flash-Speicher abgelegt werden. Ein Megabit (128 KB) serieller Flash-Speicher bietet Platz für etwa 32 Sekunden Sprachmaterial.
Das in Abbildung 1 dargestellte Flussdiagramm fasst die einzelnen Schritte zusammen. Zunächst wird die Sprachaufnahme als WAV-Datei auf einem PC gespeichert. Anschließend wird die Originaldatei mithilfe einer Audiobearbeitungssoftware angepasst und auf 8000 Hz neu abgetastet. Danach wird sie als vorzeichenlose 16-Bit-Little-Endian-Mono-Datei gespeichert. Im dritten Schritt wird die Datei mit dem ADPCM-Algorithmus kodiert und als Binärdatei gespeichert. Im vierten Schritt werden alle Dateien in ein Dateisystem kompiliert. Schließlich werden die Dateien auf einem Mikrocontroller oder in einem externen Speicher abgelegt.
Abbildung 2 zeigt die Hardware dieses Systems. Der Mikrocontroller leitet die Sprachdatei zur Wiedergabe aus dem Speicher und dekodiert sie mithilfe des PWM-Moduls. Das Ausgangssignal des PWM-Moduls wird durch einen Tiefpassfilter mit einer Bandbreite von 4000 Hz gefiltert. Das resultierende analoge Signal kann verstärkt und über einen Lautsprecher wiedergegeben werden.
Mit minimalem Aufwand für Sprachaufnahmen, deren Kodierung im ADPCM-Format und deren Speicherung im Speicher lässt sich in eingebetteten Systemen eine natürlich klingende Sprachausgabe realisieren. Doch das ist noch nicht alles. Da es sich lediglich um Aufnahmen handelt, können auch Klingeltöne, Töne oder Summen hinzugefügt werden. Der Fantasie der Entwickler sind bei der Verbesserung der Benutzerfreundlichkeit eingebetteter Systeme keine Grenzen gesetzt.
Hinweis: Der Name Microchip, das Microchip-Logo, PIC und MPLAB sind eingetragene Marken der Microchip Technology Inc. in den USA und anderen Ländern. Alle anderen erwähnten Marken gehören ihren jeweiligen Inhabern.
Referenzen:
Die Microchip Application Note AN643, die den Quellcode für einen vereinfachten ADPCM-Algorithmus enthält, finden Sie unter:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011118

