Microcontroller leert spreken
Met slimme software voor het gesproken woord
De behoefte aan apparaten die kunnen praten en audio kunnen weergeven zal de komende tijd aanzienlijk groeien. Een apparaat dat tegen je praat is namelijk veelal veel gebruikersvriendelijker dan een apparaat met een ingewikkelde menustructuur en vage licht en geluidsignalen. Epson heeft om aan die behoefte te kunnen voldoen een microcontroller ontwikkeld met een zelfstandig audiogedeelte dat meldingen kan verzorgen zonder de processor te belasten.
Moderne huiselektronica met geïntegreerde spraakuitvoer die een visuele weergave vervangt of aanvult is niet alleen iets voor slechtzienden. Het is een extra functie die voor iedereen een toegevoegde waarde kan hebben. Wat te denken van een koffiezetter die u letterlijk vraagt om het water bij te vullen of u in klare taal vertelt dat de koffie klaar is. Elektrische apparaten worden steeds intelligenter, maar ook vaak complexer in gebruik. Microcontrollers die in staat zijn om woorden en zinnen te vormen om individuele tekst uit te kunnen spreken, kunnen hier ondersteuning bieden.
De toenemende digitalisering en het gemak van gebruikers dragen ook bij aan een groter toepassingsgebied voor apparaten met stembegeleiding en audioweergave. Deze toepassingsgebieden beperken zich niet tot wit- en bruingoed, maar zijn zeer divers in hun diversiteit. Spraakuitvoer zou bijvoorbeeld ook de gebruikersinterface bij uitstek kunnen zijn in speelgoed, in veel industriële toepassingen zoals gebouwautomatisering of in liften, in gezondheids- en fitnessapparatuur of als alarmfunctie in machines of controlesystemen in winkelcomplexen. Eenrichtingsverkeer is meestal voldoende voor dergelijke toepassingen. In tegenstelling tot bidirectionele spraakcommunicatie, zoals de virtuele assistent van uw smartphone of intelligente televisies zijn de hardware- en softwarekosten aanzienlijk lager. Er is in ieder geval geen complexe infrastructuur nodig met een verbinding met internet voor spraakevaluatie en spraakgeneratie in de cloud.
Een Risk-processor met spraak
De Epsons S1C31D50 en S1C31D51 zijn microcontrollers met speciaal ontwikkelde hardware die geluiden kunnen reproduceren via een luidspreker of een zoemer. Dit maakt ze met name geschikt voor toepassingen met spraak- en audio-output, van privé tot industriële omgevingen.
Beide bestaan uit een single-chip arm Cortex-M0+-microcontroller die veel gebruikt wordt voor smart home/home elektronica, maar ook in industriële toepassingen, gezondheids- en fitnessapparatuur of besturings- en alarmsystemen. Aan deze Risk-processor is een extra hardwareprocessor toegevoegd die de combinatie in staat stelt om gesproken tekst en andere vormen van audio tegelijkertijd via twee afzonderlijke kanalen naar buiten te sturen (afbeelding 1). De audio kan via een zoemer worden weergegeven, maar beter is het om een aparte versterker en een luidspreker toe te passen voor een betere audiokwaliteit. Voor die laatste mogelijkheid moet de S1C31D51 gebruikt worden.
Omdat voor de audio een aparte hardwareprocessor wordt ingezet, wordt er geen processortijd van de Risk-processor gevraagd. Deze is daarom ook volledig beschikbaar voor andere taken tijdens het afspeelprocessen van de audio.
Tekst- en taalbestanden
In het verleden werd het vereiste taalbestand, zelfs voor de goedkopere applicaties, gegenereerd door deze in elke gewenste taal uit te spreken. Hiervoor moest er een studio en een verteller worden ingeschakeld voor het maken van de opnames of moest er een eigen opnamestudio worden opgezet. Al met al een dure en tijdrovende oplossing.
Om de ontwikkelingstijd en -kosten voor producten met unidirectionele spraakuitvoer te verminderen, heeft Epson de Esper2 Voice Data Creation Tool ontwikkeld. Dit is een pc-gebaseerde ontwikkelomgeving die kan worden gebruikt om audiobestanden van hoge kwaliteit te genereren.
Esper2 kan geschreven tekst omzetten in gesproken tekst. Hiervoor analyseert de tool de teksten in termen van zinsbouw en woordpositie om de juiste uitspraak en accentuering van lettergrepen en woorden samen met een opgeslagen en zeer uitgebreid woordenboek af te leiden. Het resultaat zijn hoogwaardige computergegenereerde audiobestanden die nauwelijks verschillen van het gesproken woord van een echt persoon. De uitspraak van woorden die niet in het woordenboek zijn opgeslagen of een speciale nadruk hebben, bijvoorbeeld productnamen, kan door de ontwikkelaar worden aangepast met de geïntegreerde bewerkingsfunctie.
De tool is momenteel beschikbaar voor twaalf talen (Amerikaans Engels, Amerikaans Spaans, Canadees Frans, Brits Engels, Frans, Duits, Italiaans, Russisch, Spaans, Chinees, Japans en Koreaans).
Belangrijk om te weten is het feit dat de tool geen vertaalfunctie heeft. Dit betekent dat de tekst beschikbaar moet zijn in de gewenste taal.
In elke taal wordt de tekst uitgesproken met een vrouwenstem. De spraaksnelheid en toonhoogte zijn variabel instelbaar om ook hier de taalspecifieke kenmerken te kunnen instellen.
Bestaande spraak- en audiobestanden (WAV, 16 kHz bemonsteringsfrequentie, monoformaat) kunnen ook worden gebruikt. Om dit te doen, importeert de ontwikkelaar de bestaande WAV-bestanden in de ontwikkelomgeving. Hier worden deze vervolgens eenvoudig gekoppeld aan de door Esper2 gegenereerde bestanden waarna het resultaat weggeschreven kan worden in de ROM van de microcontroller (afbeelding 2).
Epson blijft werken aan het maken van eenvoudige geluiden en een bibliotheek die kan worden gebruikt om spraak- en audiobestanden van hoge kwaliteit te creëren in gangbare eenheden zoals valuta, gewichten en vergelijkbare formaten. De reeds gedefinieerde zinnen kunnen ook als Excel-bestand in CSV-formaat worden geëxporteerd voor verdere verwerking.
Voorkom verlies van spraakkwaliteit
De Esper2 Voice Creation Tool gebruikt de eigen codec-indeling van Epson, Epson Own Voice (EOV), om de bestandsgrootte te verkleinen voor effectieve overdracht of opslag. Vergeleken met de standaard Adaptive Differential Pulse Code Modulation (ADPCM) -compressie, kan EOV de bestandsgrootte met een kwart tot tweederde verkleinen. Desalniettemin behaalt de spraakoverdracht een hoge kwaliteit van 16, 24, 32 of 40 Kbit/s.
Het .eov-bestand (opslag van spraak- en audiogegevens) bestaat meestal uit een opzoektabel en de audiogegevens. Als dezelfde ID is toegewezen aan een zin met een bepaalde betekenis in de verschillende talen, kan deze zin heel gemakkelijk in meerdere talen worden afgespeeld door altijd dezelfde ID op te roepen in de opzoektabel voor de verschillende talen. Dit geeft de ontwikkelaars die hierbij betrokken zijn een goed overzicht, vooral als er veel verschillende zinnen in verschillende talen moeten worden uitgevoerd.
De geheugenruimte kan verder worden verkleind door een conventionele schuine streep (/) in te voegen in basis- of repetitieve formuleringen, bijvoorbeeld bij het specificeren van temperaturen. De Esper2 Voice Creation Tool begrijpt deze en rangschikt en verbindt automatisch alle tekstformuleringen, bijvoorbeeld:
ID-nummer 1: De temperatuur / is 38 °C.
ID-nummer 2: De temperatuur / is 39 °C.
ID-nummer 3: De temperatuur / is 40 °C.
De spraakgegevens die in dit geselecteerde voorbeeld worden gegenereerd, zijn: De temperatuur is 38 °C, is 39 °C, is 40 °C.
Speel tekst en audio tegelijkertijd
De uitvoer vindt plaats met behulp van eenvoudige bedieningsfuncties: Esper2 kent een nummer (ID) toe aan alle gegenereerde spraak- en audiogegevens. Dit nummer (ID) wordt in een register van de hardwareprocessor geschreven. Dit betekent dat er geen code aangemaakt hoeft te worden om de geluidsbestanden te koppelen. Zodra het afspelen van het geluid is begonnen, zijn er geen CPU-bronnen nodig, zodat de CPU zonder beperking beschikbaar is voor andere taken, zelfs tijdens de audio-uitvoer of gewoon in de slaapstand worden gezet.
Het audiogedeelte kan tekst en audio tegelijkertijd afspelen. Het bijzondere eraan: als er bijvoorbeeld naast tekst ook achtergrondmuziek wordt afgespeeld, kunnen de respectieve volumeniveaus onafhankelijk van elkaar worden geregeld. De achtergrondmuziek kan bijvoorbeeld zachter zijn wanneer de spraakuitvoer begint.
Aan de hardwarezijde wordt een verandering in toonhoogte (hoog/laag) en spraaksnelheid doorgevoerd. De spraaksnelheid kan worden geregeld in stappen van vijf procent van 75 tot 125 procent.
Ontwikkelingsbord
De S1C31D50 en S1C31D51 zijn in verschillende uitvoeringen, behuizingen en aantal aansluitpennen leverbaar (afbeelding 3). Meer informatie daarover is te vinden in de zeer uitgebreide datasheet en gebruikershandleiding. Voor geïnteresseerde ontwikkelaars is het S5U1C31D50T1200 Evaluation Board beschikbaar voor het testen van de spraakuitvoer. Bij aflevering van het bord is er al uitgebreide testsoftware in verschillende talen geïnstalleerd. Met DIP-schakelaars wordt hier de gewenste taal gekozen.
Om uw eigen zinnen te maken, hoeft u alleen de Esper2-software te installeren. Nadat u de tool met succes heeft geïnstalleerd, kunt u uw eigen zinnen definiëren, deze naar wens wijzigen en, indien nodig, uploaden naar het overeenkomstige evaluatiebord.
Auteur David Werthwein, Rutronik