XFS5152CE Sprachausgabe Chip

  • Nachdem ich mir an chinesischen Fakes klassischer Sprachsynthesizer Chips die Finger verbrannt hatte, wollte ich doch nochmal eine Sprachausgabe für alte Computer realisieren.

    Möglichst system-unabhängig, d.h. über eine serielle Schnittstelle.


    Dabei bin ich auf den aktuellen XFS5152CE von IFLYTEK gestoßen.


    Der XFS5152CE Speech Synthesis Chip verarbeitet englischen (und chinesischen) Klartext, d.h. man muss keine Allophone oder ähnliche Bruchstücke zusammensetzen.

    Er hat einen 4KB Puffer, kann also eine ganze Menge Text puffern und dann autonom wiedergeben während der Rechner schon etwas anderes macht.


    Sonderfunktionen können über in die Zeichenkette eingebettete Befehle in eckigen Klammern erreicht werden.

    Neben verschiedenen Stimmen gehören dazu auch Tonhöhe, Geschwindigkeit, Lautstärke, und auch 75 vorgefertigte Alarm-Sounds.

    Das funktioniert recht ordentlich und man kann mit etwas Gefummel auch deutsche Sätze halbwegs verständlich herausbekommen.


    [Er hat auch eine Aufnahme und Erkennungsfunktion; die habe ich nicht ausprobiert.]


    Ich habe mir zum Ausprobieren eine der Fertigplatinen für unter 20 Euro gekauft und zunächst einen kleinen 50 Ohm Lautsprecher direkt angeschlossen.

    Die Platine hat eine etwas unpraktisch nach unten ragende Stiftleiste, auf der alle Anschlüsse verfügbar sind.

    (Neben seriell 4800, 9600. 19200, 115200 kann man auch SPI oder I2C verwenden).


    Für die Ansteuerung des Chips habe ich zuerst mal einen Raspberry Pico benutzt, da der ebenfalls mit 3.3V arbeitet.

    Mit dem Micromite BASIC war es möglich, schnell zu experimentieren, vor allem, um das Warten auf den Chip richtig zu implementieren.

    Wenn man nicht auf die Bereitschaft wartet, stoppt die laufende Ausgabe und die neue startet sofort.


    Man kann damit sehr einfach eine Sprachausgabe-Box mit z.B. RS232C zum Anschluss an alle möglichen Rechner realisieren.

    Nur ein RS232C auf 3.3V TTL Wandler und eine 3.3V Stromversorgung sind dafür notwendig.

    Der 50 Ohm Lautsprecher ist zwar hörbar (8 Ohm ist eine zu hohe Last) aber doch zu leise - ich habe dann einen kleinen mit zwei Micro-Batterien betriebene Taschenlautsprecher/Verstärker angeschlossen - damit ist das Signal schön klar - schon zu laut für's stille Kämmerchen.

    Da der Chip mit 3.1 bis 4.5 V spezifiziert ist (I/O Pins mit 3.6 V), sollte er und der Lautsprecher auch gut mit einer 3.7V Lithium-Akkuzelle betreibbar sein.


    Das beigefügte Sample ist mit einem Billigstmikrofon an einem alten Laptop aufgenommen - man muss sich das Rauschen wegdenken, dann bekommt man zumindest einen Eindruck von der Aussprache.

    Die Tonqualität ist im Original aber sehr gut, ohne jedes Rauschen.



    Mein Testprogramm:

  • Die Beispiele in dem verlinkten Thread klingen schon recht stark nach Computerstimme, aber schon toll, was da so einfach möglich ist. Was war das für ein Chip - konnte ich dort nicht finden - ein PIC oder AVR?


    Der chinesische Chip kann zwar recht gut sprechen, allerdings kann er nicht singen ...

  • Die Stimme klingt halt nach SAM: https://simulationcorner.net/index.php?page=sam - dort kannst Du's Dir ja mal anhören - SAM stammt halt auch von Anfang der 80er...

    Der C-Code kommt von Sebastian Macke - der hat den ursprünglichen SAM vom C64 reengineered. Das hier ist eine Portierung auf einen µC.

    Du kannst dafür einen PIC32MX150 oder PIC32MX170 nehmen. Wie gesagt, das Deutsch das ich da implementiert habe ist relativ verständlich.


    :)Franky