Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 64 reacties
Submitter: JS1982

Googles bedrijfsonderdeel voor kunstmatige intelligentie DeepMind heeft een grote sprong gemaakt met door de computer gegenereerde spraak. De tekst-naar-spraakmachine WaveNet kan Engels en Mandarijn uitspreken op een manier waarmee het vrijwel echt lijkt.

Het zelflerende, neurale netwerk WaveNet produceert ruwe geluidsgolven en leerde zijn 'spraak' door te trainen op data met tienduizenden geluidssamples per seconde. Een enkele WaveNet kan de natuurlijke manier van spreken van verschillende sprekers overnemen en ertussen wisselen. Naast trainen op spraak, lieten de onderzoekers WaveNet ook muziekfragmenten analyseren, waarna WaveNet nieuwe en realistisch klinkende pianomuziekstukken kon maken. Het model herkent ook verschillen tussen fonemen, ofwel de kleinste klankeenheden die een betekenisverschil laten horen.

WaveNet Sample

Voorbeeld van de opbouw van 1 seconde spraak: tot wel 16.000 sampledeeltjes. Bron: DeepMind

De onderzoekers wisten de resultaten te bereiken door WaveNet te trainen met ruwe geluidsgolven. Dit is een methode die vaak vermeden wordt, schrijven de onderzoekers op hun blog. Een geluidsfragment bestaat uit zo'n 16.000 samples per seconde of meer. Om goed klinkende spraak te krijgen, moet elke sample op de juiste manier beïnvloed worden door alle voorgaande stukjes. Omdat de samples dus per stapje worden opgebouwd, is er veel rekenkracht nodig. De kans dat deze techniek binnenkort in consumentenproducten terechtkomt, is dan ook klein.

WaveNet structuur

Wijze waarop WaveNet stukjes meeneemt van de voorgaande sample om tot de volgende te komen. Bron: DeepMind

Om te weten te komen hoe goed de uitspraak van WaveNet te vergelijken is met andere tekst-naar-spraaksystemen en met door echte mensen uitgesproken tekst, lieten de onderzoekers testsamples horen aan een panel. WaveNet wist een score te halen van 4,21 in het Amerikaans Engels en 4,08 in Mandarijn op een schaal van 1 tot 5. Echte mensen haalden een echtheidscore van 4,55 bij Engels en 4,21 bij Mandarijn. Ook lieten de onderzoekers WaveNet zelf een soort 'taal' verzinnen. Dit klinkt als een menselijke taal, maar is het niet.

Op de website van WaveNet staan verschillende samples. Daarnaast verscheen een onderzoeksartikel. DeepMind, het bedrijfsonderdeel waaruit WaveNet voortkomt, is de kunstmatige-intelligentietak van het bedrijf. Het wist al verschillende successen te behalen, onder andere bij het spelen van het spelletje go en bij oogonderzoek.

Parametric-spraaksynthesizer


Concatenative-spraaksynthesizer


WaveNet

Moderatie-faq Wijzig weergave

Reacties (64)

Het onderschrift van het plaatje klopt niet. Dit heeft T.net er duidelijk zelf bij verzonnen. De gelinkte blog heeft wel dat plaatje, maar een compleet andere beschrijving. Google beschrijft WaveNet als een zogenaamd Convolutioneel Neuraal Netwerk. De input van dit netwerk zijn geen "voorgaande samples", maar tekst die uitgesproken moet worden.

Ook de rest van de tekst is vreemd te noemen. "Een geluidsfragment bestaat uit 16000 samples per seconde of meer". Dat noement we normaal gesproken 16 kiloHertz, maar 8 Khz is ook gebruikelijk (telefoonkwaliteit). CD kwaliteit is 44.1 kHz.

Het idee dat er veel rekenkracht nodig is, is evenzeer ongegrond. Neurale netwerken kunnen behoorlijk efficient zijn. Het trainen kost klauwen met tijd, maar daar heeft Google genoeg datacentres voor. Maar een eenmaal getraind netwerk kun je makkelijk op een smartphone gebruiken om tekst uit te laten spreken.
Inference op dit netwerk doen is daadwerkelijk wel heel zwaar, oftewel nieuwe audio genereren. Volgens een van de mensen bij Google Brain duurt het ongeveer 90 minuten per seconde aan audio. En de hardware die ze daar gebruiken is niet mis. Voor veel use cases is dit dus nog niet boeiend maar het is een heel mooi resultaat om op verder te bouwen. Sowieso hangt het enorm af van de structuur van het netwerk hoe lang het duurt, sommige diepe netwerken kunnen er rustig secondes over doen op een normale desktop. En hier doe je precies dat, een behoorlijk diep netwerk doorrekenen. Per sample dus, vandaar dat het zo extreem lang duurt.

Tweet van desbetreffende persoon
Het leek me erg veel dus ik heb het paper maar gelezen. En ik snap nu wat beter waarom ze aan zo'n idiote hoeveelheid processing tijd komen.

De output van een neuraal netwerk zijn 1 of meer output nodes. Die hebben elk een analoge output waarde, typisch tussen de 0 en de 1. In dit geval zou het voor de hand liggen om 100 tot 1000 output nodes te hebben, die elk 1 sample berekenen. Dan heb je in 1 klap 6 tot 62 milliseconde aan geluid.

In plaats daarvan lijkt Google 256 output nodes te hebben gebruikt, voor een enkel sample (!). Ze kiezen uit de 256 output nodes de node met de hooste waarde. Dus als node 14 als waarde 0.933 heeft, en alle andere nodes hebben lagere outputs, dan produceren ze 1 sample met waarde 14.

Het praktische gevolg is erger dan dat je 256 output nodes per sample moet uitrekenen. Neurale netwerken hangen van analoge functies aan elkaar (hier tanh, tangens hyperbolicus). Om daarmee een digitale output te maken is problematisch. Het beruchte voorbeeld is een XOR functie - triviaal in digitale logica, maar eist een diep en/of breed neuraal netwerk. Geen wonder dat Google voor deze digitale opzet dus heel, heel veel nodes nodig heeft. En ik vermoed dat een andere partij binnenkort wel met een beter resultaat zal komen, simpelweg door een gelukkigere keuze van output encoding.
Het kost helemaal niet veel meer als je 256 output nodes hebt. Dit soort netwerken worden opgebouwd als computational graph en of je nou 1 output of 256 outputs hebt, dat scheelt misschien 1-2% aan computation omdat je alleen in de laatste layer meer computation nodig hebt. Je hebt een hele hoop caching voordelen als je zo'n graph gebruikt en die maakt het backpropagaten voor het trainen ook vele malen sneller.
"Een geluidsfragment bestaat uit 16000 samples per seconde of meer". Dat noement we normaal gesproken 16 kiloHertz
Hertz is een eenheid van frequentie, namelijk s-1. Als je zegt: "Een geluidsfragment bestaat uit 16 kHz." dan vind ik dat veel vreemder. Er staat dan namelijk: "Een geluidsfragment bestaat uit 16000 per seconde." Wat? 16000 kippen per seconde?
Beste zou zijn om te zeggen: "Een geluidsfragment bestaat meestal uit 16000 samples per seconde of meer". Als je per se kHz wil gebruiken zeg je: "Een geluidsfragment heeft een sampling frequentie van 16 kHz of meer"
[...]
Als je per se kHz wil gebruiken zeg je: "Een geluidsfragment heeft een sampling frequentie van 16 kHz of meer"
Als we dan toch zout op slakken aan het gooien zijn, de correctie manier op dit te zeggen is: "Een geluidsfragment heeft een sample rate van 16 kHz of meer." Want als je het in deze contekst over 'frequentie' hebt, dan is het alsof het geluidsfragment zelf op 16 kHz aan het trillen is, terwijl je bedoelt dat het geluidsfragment met een snelheid (= rate) van 16 kHz opgenomen is.
Nee hoor. Je hebt 16000 samples per seconde, de sample frequency is dan 16 kHz. In deze context wil het juist niet zeggen dat de samples aan het trillen zijn. Zonder context, ja, dan trillen de samples. 'rate' zie ik ook steeds vaker staan maar is niet helemaal correct aangezien snelheid niet de eenheid Hz heeft.
"Dat noemen we 16 kHz" sloeg op "16000 samples per seconde". En Hertz is niet zomaar "per seconde", maar "telbare gebeurtenissen per seconde". En de gebruikelijke manier om daaraan te refereren is simpelweg "Dat geluidsfragment is 16 kHz"; sample rate is de vanzelfsprekende eigenschap die in Khz wordt uitgedrukt.
Je kan dat wel bedoelen, maar het is niet eenduidig.

Sample frequentie 16 kHz?
Nyquist-frequentie 16 kHz?
Een geluidsgolf die 16000 keer per seconde achterelkaar geplakt is?
Ik ben zelf blind en gebruik dus dagelijks tekst naar spraak. Er zijn verschillende mogelijkheden maar je hoort toch altijd dat het een computer is. Ik vind dit dus echt wel een gave ontwikkeling. Het nadeel wat ik wel zie is dat hoe menselijker de stem klinkt hoe minder makkelijk je de snelheid kan verhogen. Zelf staat mijn macbook zo snel mogelijk dit is voor de meeste zienden niet meer te verstaan. Ik merk dat dit bij natuurlijke stemmen minder prettig is dus ik zie deze stemmen nog niet zo snel voor blinden gebruikt worden.
Het doel van deze stemmen is denk ik ook net wat anders, dan wanneer jij jouw computerstem gebruikt om veel informatie te verzamelen. Ik ben hier afgelopen twee jaar veel mee bezig geweest (ik werkte toen bij Dedicon, bij jou waarschijnlijk wel bekend ;-)). Voor de oudere blinde en slechtziende mensen (vooral die dit ook nog eens op latere leeftijd zijn geworden) is een echte computerstem en het versnellen ervan niet echt een optie, deze willen rustig in hun stoel naar een artikel of een boek kunnen luisteren. Met deze verbeteringen komt ook dat een stuk dichterbij.

Waar ik wel benieuwd naar ben is de zogenaamde "Uncanny Valley". Dit is vaak van toepassing op robots die zoveel op mensen lijken, maar nét niet, waardoor het eng of vervelend wordt. Dat zou hier ook van toepassing kunnen zijn en je zou je nog meer kunnen storen aan de enkele fouten die de stem maakt. Terwijl je monotone computerstem geen natuurlijke intonatie heeft, maar het wel altijd volgens verwachting doet.
"Ik ben zelf blind" en "wat ik wel zie"
Ik heb geen idee of dit bewust zo uitgedrukt is, maar het is wel een leuke woordspeling :+

Je haalt ook wel een leuk nieuwtje aan, daar zullen een hoop mensen nooit aan gedacht hebben.
Cool om te zien dat je ondanks je handicap goed kunt meekomen dat je naast dus lezen ook een prima reactie kunt plaatsen. Of kost dat bovengemiddeld veel tijd?

Ik ben bang dat niet het hele internet zo geschikt is voor blinde mensen, iets waar misschien eens wat vaker rekening mee gehouden zou moete n.
Daar heb je helemaal gelijk in. Als voorbeeld, het moderatiesysteem op tweakers.net is niet toegankelijk voor mij, dat is jammer.
Maar is het niet zo dat als je blind bent, het juist prettig is dat je dat verschil hoort? Op die manier weet je wanneer een mens spreekt en wanneer de pc. Ik zou een mens die me aanspreekt anders bejegenen dan een computer.

Jouw gehoor is beter getraind dan het mijne. Wat denk jij van de samples in het bericht? Die sample van wavenet klinkt natuurlijker, maar hoe onderscheidt zich die sample van de andere?
Ik krijg een 4x ongeldige bron te zien.

Ergens wel bizar dat er zoveel rekenkracht nodig is voor slechts een paar seconde spraak, wat wij doen zonder bijna na te denken, en als bonus kunnen wij dan ook met accenten en dialecten spelen. Laat ergens wel zien hoeveel 'rekenkracht' wij aan boord hebben, dan zijn er zelfs nog mensen die meerdere talen vloeiend kunnen spreken.

En dan komt ook de taal zelf nog om de hoek kijken, de software een random stukje tekst geven en ga je gang zal nog ver weg zijn, er moet ook complexe kennis zijn hoe lettercombinaties moeten worden uitgesproken, maar ook in zinsverband de klemtoom/hoogte zou moeten zijn. (in bv vragende zin, maar ook om 'iets' te benadrukken).

[Reactie gewijzigd door SinergyX op 9 september 2016 13:03]

Het is niet de rekenkracht. Onze hersenen zijn niet zo snel en niet zo precies als een computer.

Wat wij hebben en computers niet is parallellisme. Signalen kunnen in onze hersenen tegelijkertijd duizenden verschillende routes afleggen, maar in computers niet. De simulatie van een neuraal netwerk in de computer is als het spelen van een turn-based strategy game: elke stap simuleren we hoe elk van de duizenden neuronen één stap of berekening maakt, en dan opnieuw. In ons hoofd gebeurt dat allemaal tegelijkertijd.

Daarnaast zie je hier dat er een feedbacklus is geïntroduceerd: de uitvoer van het laatste neuron is de invoer van het volgende. Zulke lussen zijn heel zeldzaam in kunstmatige neurale netwerken: meestal gaan de signalen van invoer naar uitvoer zonder ook maar één lus te maken. Maar lussen zorgen ervoor dat een systeem over z'n eigen (voorgaande) informatie kan redeneren, iets wat duidelijk nodig is voor natuurlijke spraak.

Nog sterker, hoe meer lussen een neuraal netwerk heeft, hoe meer zelf-bewust het is. En in menselijke hersenen zitten zoveel lussen dat je over je eigen gedachten kan redeneren, en dus bewust bent van je eigen bestaan.

Computers zijn daar nog lang niet omdat ze zo slecht parallel werken. Dus zullen we nog even tientallen jaren moeten wachten op een echte generieke AI.
Onze hersenen zijn niet zo snel en niet zo precies als een computer.
Ik lees dit soort aannames wel vaker. Er is echter geen enkele basis voor dit vermoeden. Wel omgekeerd. Er zijn mensen die veel sneller dan welke computer dan ook patronen herkennen en zaken kunnen interpreteren. ( oa savantsyndroom) Dat gaat niet voor iedereen op dus het is een speciaal talent. Wel bezitten alle mensen dezelfde hersenstructuur en dat wekt dus de suggestie dat iedereen feitelijk de gereedschappen heef tom een dergelijk talent te oefenen.
Het is eerder zo dat iedereen over super-rekenkracht bezit, maar dat ons bewustzijn zich bevindt op een heel hoge, gevirtualiseerde laag, als het ware, waarop we ons denken doen (zie Gödel, Escher, Bach). En dus ook ons rekenen. En dat laatste is eigenlijk vreselijk inefficient.

Wat een savant onderscheidt van ons normale mensen, is dat zij dus een direkte lijn hebben met de 'raw cpu', zeg maar, waardoor ze op het hoog, gevirtualiseerde abstractie-niveau toegang hebben tot een rekenkracht die we in principe allen bezitten, maar die normaliter alleen gebruikt wordt voor de hogere 'VM', zeg maar.
Wat is dat voor laag? Niemand weet waar ons bewustzijn zich bevind. Er is een man in Frankrijk die bijna geen hersens heeft en vooral een vloeistof in het hoofd. De man functioneert prima. Als bewustzijn gekoppeld is aan materie - hersenmaterie- dan klopt het niet.

Ons rekenvermogen zit niet in een of andere 'laag'. Recent onderzoek toont aan dat ons vermogen tot schatten een functie is van dopamine. In onze hersens zitten blijkbaar receptoren die i.c.m. dopamine snel kunnen 'zien' of een waarde hoger of lager is.

Rekenen is dus een neurologische functie, niet iets dat voortkomt uit zelfreflecterend zefl-bewustzijn.

Het is ook wel logisch. Zie eens een konijn vluchten voor een vos. Het konijn moet zijn snelheid en het terrein razendsnel kunnen omzetten in een koers, dus waar ie heen springt, zijn poten neerzet en doet dat m.b.v. zijn 3D gezichtsvermogen.

Dat is dus een constant inschatten van snelheid, lengte van een sprong over een tak, of ie onder een tak door past. Die visuele data moet snel omgezet worden in een schatting.
Die 'feedbacklus' zoals jij het noemt is zeker niet heel zeldzaam, dit heet Recurrent Neural Networks en is een groot onderzoeksgebied. Het onderwerp bestaat al heel lang en dankzij een aantal doorbraken zijn ze nu in staat enorm lange dependencies te modelleren als er maar genoeg data in gestopt wordt. Vrijwel alles wat met sequences te maken heeft wordt daarmaa gedaan.
Tja nu wachten op de eerste kunstmatige zingende stem. Wie weet hebben we over 5 jaar de eerst The Voice Computer of op ons tv scherm.
-

[Reactie gewijzigd door zacharon op 9 september 2016 19:55]

Eigenlijk is zang genereren een makkelijker op te lossen probleem, dit omdat een aantal variabelen vast staat in de muziek (het tempo, ritme en toonhoogte). Deze variabelen zijn bij zang veel beter te voorspellen!
Die bestaat al geruime tijd. Zeker in het japans. Check op youtube maar eens "The world is mine" van "Hatsune Miku" Hebben zelfs al grote hits gehad.

https://www.youtube.com/watch?v=_Gg3mm-PQ80

Gebaseerd op yamaha's vocaloid.
Daarnaast zie je hier dat er een feedbacklus is geïntroduceerd: de uitvoer van het laatste neuron is de invoer van het volgende. Zulke lussen zijn heel zeldzaam in kunstmatige neurale netwerken: meestal gaan de signalen van invoer naar uitvoer zonder ook maar één lus te maken.
En ook hier heb je geen lussen. Als je kijkt zie je dat de neuronen klassiek in lagen zijn opgedeeld, en elk neuron communiceert uitsluitend met neuronen uit de volgemde laag. Van input via 3 "hidden layers" naar de output. Je kunt dus geen lus hebben, want daarvoor moet je van 1 laag terug naar een voorafgaande laag. Dit is een zuiver "feed-forward neural network", geen "recurrent neural network".

Negeer het onderschrift, dat is afkomstig van T.net en niet van Google.
Er zijn wel neurale netwerken die feedback gebruiken (het is maar hoe je het modeleert, alles is mogelijk), vooral voor dit soort sequentiële problemen (tekst generatie, spraak synthese). Dit zijn zogenaamde Recurrent Neural Networks en kunnen bijvoorbeeld gebruikt worden in combinatie met andere soorten DNNs, zoals een Convolutional Neural Net. Dit kan je bijvoorbeeld gebruiken om natuurlijke (geschreven) taal te genereren.

In dit specifieke geval wordt er geen feedback lus gebruikt, slechts een feedforward connectie tussen de output van het ene netwerk naar de input van het volgende, omdat "tijd" in dit geval erg belangrijk is en het volgende stapje afhankelijk is van de vorige uitkomst. Er wordt gebruik gemaakt van "Causal Convolutional Neural Networks", waarvoor geldt: "the prediction [..] emitted by the model at timestep t cannot depend on any of the future timesteps". Dit is dus met opzet zo gemodelleerd..

Dit model is er ook niet perse op gericht dat het zo moet werken als dat onze hersenen werken, de uitvoer is alleen van belang. Machine learning en ANNs zijn origineel wel geïnspireerd door het brein, maar meer ook niet.

Het deel over meer lussen en zelfbewustzijn ga ik mijn vingers niet aan branden..

[Reactie gewijzigd door Reynouts op 9 september 2016 20:11]

Dit klopt niet denk ik. De rekenkracht is nodig voor het zoeken naar de juiste instellingen voor het neurale netwerk. Waarschijnlijk hebben ze een vorm van evolutie gebruikt.

Dat mijn aanname lijkt te kloppen kun je opmaken uit het woordje: "trainen" zoals vermeld.

Dit trainen is wat dus veel rekenkracht kost. Als het trainen eenmaal klaar is zou het niet zoveel rekenkracht moeten kosten...
Trainen van dit soort netwerken gebeurt niet met evolutionaire algoritmes maar met backpropagation, waarbij je gebruik maakt van differentiëren en kunt zien welke gewichten in je netwerk wat voor effect op de fout die je maakt hebben, waarna je ze dus kunt aanpassen om in het vervolg niet een even grote fout te maken. Dit is een erg zwaar proces wat je voor elk voorbeeldje meerdere keren moet doorlopen. Dit kost rustig weken tijd op enorm zware videokaarten (die werken erg goed voor dit type berekeningen)

Hierna gebruikt het nog steeds enorme rekenkracht, voor een seconde aan tekst (dit is dus 16000 samples) doet hun netwerk er ongeveer 90 minuten over.
En dan komt ook de taal zelf nog om de hoek kijken, de software een random stukje tekst geven en ga je gang zal nog ver weg zijn, er moet ook complexe kennis zijn hoe lettercombinaties moeten worden uitgesproken, maar ook in zinsverband de klemtoom/hoogte zou moeten zijn. (in bv vragende zin, maar ook om 'iets' te benadrukken).
Als ik het artikel goed begrijp is dat met WaveNet nu dus gelukt.
Dat is het precies.

Het mooie is dat alle "regels" waar SinergyX het over heeft (klemtoon, intonatie, ...) geleerd worden, zonder dat je deze er impliciet in te hoeven stoppen. Het neuraal netwerk vindt patronen en verbanden, waar wij misschien/waarschijnlijk niet aan denken en niet in regels kunnen vatten, door heeeeeel veel voorbeelden te analyseren.
Deep learning dus. Het mooie hieraan is dat als je op een reeks voorbeelden deep learning toepast we spontaan ineens nieuwe verbanden kunnen ontdekken. Denk aan medische toepassingen en weet ik veel. :) Deep learning en andere AI technieken zullen de komende 10/20 jaar heel veel doen voor de mensheid. Ik zie het als een kleine revolutie zoiets als het internet.

Veel mensen denken dan aan robots die zelf kunnen denken. Maar voordat we ooit zover zijn kunnen veeeeeel meer andere zaken oplossen en verbeteren met beginnende nu ontdekte technieken. Voordat we een intentiteit creëren met zelfbewust vermogen zal nog heel lang duren.

[Reactie gewijzigd door Texamicz op 9 september 2016 20:18]

Deep learning inderdaad, wat eigenlijk gewoon een fancy term is voor een neuraal netwerk met veel hidden layers.

Deze technieken bestaan al heel lang (er zijn papers uit de jaren 60 en 70, die Deep Learning ideeën en experimenten beschrijven*) en is niet "beginnend en nu ontdekt". Maar doordat computers steeds krachtiger worden, is het makkelijker om deze techniek "lukraak" tegen verschillende problemen aan te gooien (terwijl het heus niet altijd de beste uitkomst hoeft te betekenen).

* Eerste paper met Deep Learning: Ivakhnenko, A. G. and Lapa, V. G. (1965). Cybernetic Predicting Devices. CCM Information Corporation
Het is niet alleen krachtigere computers; onze algoritmes om ze te trainen worden ook veel beter. ReLU activatie functies, dropout/dropconnect, regularisatie etc helpen tegen vanishing gradient en andere numerieke problemen.

Dit is inmiddels al de derde generatie Neurale Netwerken, maar dit keer verslaan ze vrijwel alle competities. Ik was vorige week in Boedapest voor DCASE 2016, een Audio Event Detection wedstrijd. Ik geloof dat alle winnaars een Neuraal Netwerk gebruikten. De exacte types netwerken verschilden, en sommige teams gebruiken ook andere classifiers, maar zonder Neuraal Netwerk was je kansloos. En de unanieme conclusie na afloop was dat de fusie-modellen alleen nodig waren omdat er te weinig data was voor pure Neurale Netwerken - dit is de ultieme Big Data.
Het is niet alleen krachtigere computers; onze algoritmes om ze te trainen worden ook veel beter. ReLU activatie functies, dropout/dropconnect, regularisatie etc helpen tegen vanishing gradient en andere numerieke problemen.

Dit is inmiddels al de derde generatie Neurale Netwerken, maar dit keer verslaan ze vrijwel alle competities. Ik was vorige week in Boedapest voor DCASE 2016, een Audio Event Detection wedstrijd. Ik geloof dat alle winnaars een Neuraal Netwerk gebruikten. De exacte types netwerken verschilden, en sommige teams gebruiken ook andere classifiers, maar zonder Neuraal Netwerk was je kansloos. En de unanieme conclusie na afloop was dat de fusie-modellen alleen nodig waren omdat er te weinig data was voor pure Neurale Netwerken - dit is de ultieme Big Data.
Daar heb je ook gelijk in. Maar dit is natuurlijk ook een impliciet gevolg van de krachtige computers. Hierdoor is het mogelijk geworden om de bedachte algoritmes en verbeteringen te testen en is dat bereikbaar voor veel meer onderzoekers. Vroeger moest je maandenlang op je resultaten wachten van een klein experiment, nu is dit veel gemakkelijker en aantrekkelijker geworden voor onderzoekers.

Desalniettemin heb je altijd een brein nodig met goede ideeën ;)
Het zal vast wel goedkoper zijn dan inhuren van spraak-acteurs. Wat dan weer interessant is voor RPG's etc. waar je heel veel content wilt kunnen laten uitspreken (mogelijk ook incl. zelfbedachte namen etc.).

Een score van 4,21 door de machine t.o.v. 4,55 van de 5, dat klinkt nog niet echt als een grote doorbraak maar als een evolutie. [Edit over onderstaande: zie gelinkte artikel, de eerstvolgende techniek van Google zelf zat er 10% onder. En sowieso is alleen vergeleken met andere Google-algoritmen, niet die van andere organisaties/onderzoekers]. Dat geldt ook voor het langzaam genereren, al lost dat laatste zichzelf deels op zolang de Wet van Moore nog min of meer werkt. Dan: op termijn mogelijk interessant voor bijv. diensten voor ouderen en blinden/slechtzienden.

[Reactie gewijzigd door F_J_K op 9 september 2016 13:16]

Als voorgaande technieken een score hebben 2.4 dan is het wel degelijk een doorbraak.
Voorgaande technieken (HMM en een LSTM-RNN) scoren ongeveer 3,67 en 3,86, voor Engels.

Zeker een vooruitgang, maar wat zoiets betekent is moeilijk te zeggen.

Samples zijn ook maar samples en kunnen mooi gekozen zijn.

[Reactie gewijzigd door Reynouts op 9 september 2016 19:49]

Extra informatie over het onderzoek en TTS in het algemeen:

De meest gebruikte synthetische stemmen zijn nog steeds gemaakt door middel van een relatief oude techniek, genaamd "concatenative synthesis" (zoals Claire en Xander op je iPhone). Simpel gezegd gebruiken de modellen van deze stemmen een grote database van echte audio van een enkele spreker (dat is rustig meer dan 30 uur aan audio). Deze stemmen klinken natuurlijk, maar voor elke stem heb je een nieuwe database met audio nodig.

Om het probleem van weinig data op te lossen is er veel onderzoek uitgegaan naar "parametric synthetis", waar het makkelijker is om de stemmen een bepaalde richting in te duwen door aan de parameters te schuiven. Het klinkt vaak wat robotischer en minder natuurlijk dan concatenative synthesis, maar je hebt minder data nodig en je kunt met een goed model meerdere stemmen bouwen. Dit is op verschillende manieren geprobeerd, met Hidden Markov (HMM) modellen, maar ook met Long Short-Term Memory Recurrent Neural Networks (LSTM-RNN).

WaveNet gebruikt een andere aanpak, ze modelleren direct de waveform in de tijd. Het idee is niet nieuw, maar de manier waarop het uitgevoerd is wel en inmiddels zijn de computer/grafische kaarten zo sterk dat het het proberen waard is. Het model combineert causal filters met dilated convolutions, waardoor voor elk nieuwe voorspelling, teruggekeken kan worden naar de vorige voorspellingen. De kunstmatige spraak wordt, nadat het model getraind is op deze ruwe waveforms, sample per sample gegenereerd.

Normaal gesproken zijn bij modellen zoals een HMM, alleen het trainen zwaar voor de computer, maar in dit geval is het genereren van de spraak ook erg zwaar, omdat dit sample voor sample gebeurd. Dit is een cruciale stap om tot het resultaat te komen van WaveNet. In de evaluatie komt WaveNet er beter uit dan de beste HMM gebaseerde stemmen en de LSTM-RNN modellen (Voor Engels: WaveNet 4.21, HMM 3.86, LSTM-RNN 3.67, op een schaal van 0 tot 5, beoordeeld door mensen).

Het genereren van spraak lijkt op deze manier dus natuurlijker te kunnen. Maar het is nog erg langzaam en je hebt er een krachtig apparaat (en geduld) voor nodig om on-the-fly spraak te kunnen genereren. Of hier nog een doorbraak in gemaakt kan worden valt te betwijfelen, omdat je met zoveel datapunten te maken hebt die je ruw moet samplen.
Nu vraag ik mij wel of in hoeverre hiermee emotie in tekst gelegd kan worden. Goede (stem)acteurs weten namelijk precies de juiste emotie over te brengen met hun stem (boosheid, verdriet, etc). Hoe moeilijk zal het zijn om dat na te bootsen en hoe "echt" zal het zijn?
Of zoals Depp het zegt: Forget about it!
Dacht ik ook al aan, hoe emuleer je intonaties?
Als ze het zelfs al konden in 1939 zou dat toch geen probleem meer mogen zijn :) :
https://youtube.com/watch?v=0rAyrmm7vv0
(Langere opname)

[Reactie gewijzigd door DrDentz op 9 september 2016 15:23]

Dat noemen we de finetuning..... de basis voor reproductie is er. Het begrijpen van een "situatie" die de bijbehorende emotie laat horen zal een combinatie worden van kennis en vaardigheden. Bij mensen verschilt het empathisch vermogen, dus kan je dat ook beschrijven en dus ook aanleren.
De moeilijkheid zal hem gaan zitten in de interpretatie van satire. De film Irobot is daarvan wel een mooi voorbeeld.
Al met al leuke ontwikkelingen.......
Het betekend gewoon meer input meer verbanden leren + input vanuit de real-time wereld om daarop in te spelen.
Die verzonnen taal lijkt me handig voor in RPG's, een volledig gesproken spel met subtitels dat erg weinig moeite kost voor de developers :)
Of voor community mods die nooit goede spraak actors kunnen vinden en dat je dan keihard loopt te cringen terwijl de developers van die halfgebakke engelse kul hebben ingesproken.

Dan heb ik liever zoon wavenet voice alhoewel het natuurlijk nog afwachten is hoe wavenet omgaat met het produceren van emoties/uittingen in spraak. Iets uitschreeuwen is dan ook iets heel anders dan het rustig zegge.
Eindelijk af van die Nintendo games met een eindeloze "blananamimiwhoowmimi" loop. :Y)

Maar als later die spraak ter plekke "at runtime" gegenereerd kan worden uit een subtitle kan het natuurlijk net zo goed meteen in de echte taal.. doen games dat nu al niet?
"It's-a-meee, Mario!" -> Super Mario

"NYAAAH!" -> Link, Legend of Zelda

Hoezo een eindeloze loop? ;)
De stemmen klinken al heel goed nu, alleen kan ik het onderscheiden omdat ik een soort van ruis hoor wanneer het praat. Weten ze het ruis gehalte wegfilteren, dan kan ik echt niet meer onderscheiden van een echte stem.
Dat viel me ook op. Als je die ruis eruit zou halen zou het perfect klinken. Ik denk echter dat de ruis (white noise?) gebruikt wordt om realisme te creeren...Iemand die hier iets zinnigs over kan zeggen?
Het is niet dat 'ze er iets in stoppen'. ELI5: ze doen op een hele slimme manier na wat ze hebben geleerd door naar heel veel mensen te luisteren. Blijkbaar zat daar ook ruis bij en het systeem leert dat dat er 'blijkbaar bij hoor'. Net als trouwens ademhalingen en andere mondgeluiden als je goed luisterd.
Edit: ik had "Ook lieten de onderzoekers WaveNet zelf een soort 'taal' verzinnen. Dit klinkt als een menselijke taal, maar is het niet." gemist.

[Reactie gewijzigd door Roel911 op 9 september 2016 13:53]

Dat is geen mandarijn, dat is een zelfverzonnen taal.

"Ook lieten de onderzoekers WaveNet zelf een soort 'taal' verzinnen. Dit klinkt als een menselijke taal, maar is het niet."

[Reactie gewijzigd door SeenD op 9 september 2016 13:49]

*klikt zonder te lezen op eerste play knop: "Wat is dit nou voor rare taal" :+

Dat is echt een verschil zeg! Bij de oude spraaksynthesizers lijkt het altijd alsof ze een soort haast hebben. Bij de WaveNet synthesizer is de spraak veel genuanceerder en gesproken met meer intonatie. Jammer dat het zoveel kracht kost, maar er wordt vast nog veel aan verbeterd :)

Op dit item kan niet meer gereageerd worden.



Nintendo Switch Google Pixel Sony PlayStation VR Samsung Galaxy S8 Apple iPhone 7 Dishonored 2 Google Android 7.x Watch_Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True