Robotstem programmeren

From Control Systems Technology Group
Jump to navigation Jump to search

Terug: Week 3


http://www.oddcast.com/home/demos/tts/tts_example.php?sitepal

Dit is een website waarbij je een robotstem al een aantal functies kunt geven. We twijfelen nu om dit te gebruiken in plaats van het zelf te programmeren aangezien dat makkelijk is. Het enige probleem is dat we nog niet weten of we meerdere functies tegelijkertijd kunnen toepassen. We kunnen dit programma online gebruiken maar dan kunnen we maar 1 functie toepassen. Er is een trail versie die je kunt downloaden voor 15 dagen maar daarvoor heb je een creditcard nodig en die hebben wij allemaal niet.


https://acapela-box.com/AcaBox/index.php

Deze website heeft een bepaalde stem die we wel kunnen gebruiken. Namelijk English (US) - Will. Deze stem heeft daarnaast ook nog de functie om hem blij of verdrietig de tekst uit te laten spreken. Dit zouden we dus heel goed kunnen gebruiken zonder het zelf te hoeven programmeren. Helaas kost het hier ook geld om te bestanden op te slaan (€5 maar).

De volgende drie matlab scriptjes hebben we gemaakt. De recorder neemt een stem op vanuit een TTS en roept magPlot en timePlot aan. magPlot creëert het frequentie plot en timePlot creëert het tijdplot.

In het online programma kunnen we het volgende aanpassen:

Duration

Bij verdriet worden zinnen langzamer uitgesproken dan bij blijdschap, dit komt door langere pauzes en langzamere uitspraak. (Emotions and speech: some acoustic correlates) Volgens de bron spreekt een persoon gemiddeld 1.91 lettergrepen per seconde wanneer je verdrietig bent. Het aantal lettergrepen per seconde voor blij staat er niet bij in deze bron. Volgens (Emotive Qualities in Robot Speech) is het spreektempo bij blij 'relatively fast' en bij boos 'slightly fast'. Dit verschilt nauwelijks en daarom gebruiken we de waarde van lettergrepen per seconde voor boos uit (Ecomtions and speech: some acoustic correlates) ook voor blij. Deze waarde is 4.15 lettergrepen/sec.


Bij verdriet zijn rusten tussen woorden gemiddeld langer dan bij de andere emoties. De lengte van pauzes kunnen ook in Audacity worden aangepast via effecten. Ook blijkt dat wanneer je in Acapelabox een komma typt, dit systeem een langere pauze neemt. Dit maakt de intonatie van verdrietige zinnen vaak een stuk beter. (Emotions in the voice: humanising a robotic voice.)

In audacity is het ook mogelijk om pauzes te verlengen via de functie; tempo wijzigen.


Bij blijdschap worden vooral woorden met één lettergreep erg versneld. Bij verdriet worden langere woorden 20% langzamer en korte woorden 10-20% langzamer. (Emotions in the voice - humanising a robotic voice)

Om de snelheid van woorden afzonderlijk aan te passen gebruiken we Audacity. Dit is mogelijk door een specifiek stukje audio te selecteren en dan op effecten te klikken. Daar staat 'tempo wijzigen' tussen en de snelheid van het woord kan dan aangepast worden zonder dat de toonhoogte mee verandert.


Gemiddelde fundamentele frequentie (toonhoogte)

Toonhoogte wordt ingesteld direct in Acapelabox. Het is hier niet mogelijk om een specifiek getal voor het aantal Hz in te vullen, maar dmv ee nslider kunnen we wel aangeven of de gemiddelde toonhoogte laag, gemiddeld laag, gemiddeld hoog of hoog is. Deze informatie is bij ons bekend vanuit de bron: (Prosody and speak state:paralinguistics, pragmatics, and proficiency.)' Een blije stem heeft een gem. hoge toonhoogte en een verdrietige stem heeft een gem. lage toonhoogte.


Amplitude

Uit (Emotions in the voice: humanising a robotic voice.) blijkt dat bij dat onderzoek de maximale amplitude van het geluidsniveau bij blijheid rond de 100 dB lag. Bij verdriet ligt deze waarde rond de 90 dB. Een neutrale stem lag in dit onderzoek rond de 93, dus maar een heel klein beetje harder dan verdrietig. We concluderen dat de piek waardes van blij en verdriet 10 dB uit elkaar moeten liggen om de stemmen zo optimaal mogelijk te laten klinken. Daarnaast is verdrietig iets zachter dan neutraal, en blij is ongeveer 7 dB harder dan neutraal.

Om dit te maken gebruiken we Audacity. Je gaat naar effecten en dan naar versterken. Hier vul je bij nieuwe piek amplitude een waarde in. Voor verdriet moet deze waarde 10dB lager zijn dan voor blijheid. De absolute waarde maakt niet uit.


Pitch variaties

Volgens (Emotions and Speech: some acoustic correlates) daalt de toonhoogte bij verdriet in de eerste helft van de zin en daarna blijft de hoogte redelijk constant. Dit blijkt ook uit de grafiekjes. Maar uit (Emotive Qualities in Robot Speech) blijkt dat verdriet gekenmerkt wordt een een dalende toonhoogte aan het eind van de zin.

Deze zelfde bron geeft aan dat blijheid wordt gekenmerkt door veel variatie en spreiding in toonhoogte en vloeiende veranderingen hierin. Aangezien blijheid wat betreft toonhoogte variatie veel minder constant is concentreren we ons voornamelijk op deze emotie.

Toonhoogte kan veranderd worden in Audacity via effecten. Daar staat toonhoogte aanpassen. Je kunt hier aangeven hoeveel Hz of tonen het geselecteerde stukje geluid moet dalen of stijgen.

Om al deze eigenschappen aan te passen gebruiken we dus uiteindelijk twee programma's. Het TTS programma dat wordt gebruikt is Acapelabox. Hierin wordt tempo en toonhoogte aangepast. Vervolgens wordt dit geluidsfragment opgenomen in Audacity. In dit programma bewerken we het bestand verder voor de andere aanpassingen. Hierna kunnen we het exporteren als bv. een wav of mp3 file zodat het bestand in de enquête verwerkt kan worden.