Gebruik van bestaande open-source technologie

Het doel van het project Open-Source Nederlandse Spraakherkenning is om modellen en recepten voor gebruik (scripts) te ontwikkelen die met bestaande open-source spraaktechnologie kan worden gebruikt, niet om nieuwe software te ontwikkelen. Er zijn een aantal populaire open-source softwarepakketten die in aanmerking komen om te gebruiken als basis voor de Nederlandse herkenner: KaldiHTK en Sphinx/Pocketsphinx. Hieronder worden deze kort besproken.

Het doel van het project Open-Source Nederlandse Spraakherkenning, is om het mogelijk te maken voor onderzoekers, instellingen en bedrijven om op eenvoudige wijze Nederlandse spraakherkenning te gebruiken. Het uitgangspunt hierbij is dat de gebruiker vooral geïnteresseerd is in de resultaten van de herkenning zonder dat hij zich uitgebreid moet verdiepen in de werking van de herkenner. Het project probeert het gebruikers zo makkelijk mogelijk te maken door goede Nederlandse modellen en recepten (scripts)te ontwikkelen om een bestaande open-source spraakherkenner voor Nederlandse spraakherkenning zo eenvoudig mogelijk in te kunnen zetten.
Er zijn een aantal populaire open-source softwarepakketten die in aanmerking komen om te gebruiken als basis voor de Nederlandse herkenner:
  1. Kaldi is geschreven in C++, wordt gelicenseerd onder Apache 2.0. Waarschijnlijk is Kaldi de open-source engine die op dit moment de beste herkenningsresultaten weet neer te zetten. Er wordt zeer actief aan Kaldi ontwikkeld en de toegepaste technieken zijn over het algemeen up-to-date. Zo wordt bijvoorbeeld GPU versnelde training van Deep Neural Networks (DNN), een techniek die momenteel heel populair is, ondersteund. Er zijn veel voorbeeldrecepten beschikbaar waardoor het relatief eenvoudig is om snel aan de slag te kunnen.
  2. HTK is geschreven in C en wordt gelicenseerd onder een eigen licentie met hierin de restrictie dat HTK (of onderdelen) niet verder gedistribueerd mogen worden. Dit is een zeer flexibele toolkit die in de huidige versie (3.4.1) nog geen ondersteuning biedt voor DNN, alhoewel dit voor de nog te verschijnen versie 3.5 wel is aangekondigd. De decoder (HDecode) heeft een wat beperkte functionaliteit.
  3. Sphinx is geschreven in Java, Pocketsphinx is een decoder bibliotheek in C. De licentie is vergelijkbaar met Apache 2.0. Via de website worden onder meer kant-en-klare open source akoestische modellen beschikbaar gesteld (ook Nederlandse) die door bijvoorbeeld pocketsphinx gebruikt kunnen worden. Hoewel behoorlijk flexibel, goed gedocumenteerd, en populair bij onderzoekers, lijkt Sphinx momenteel achter te blijven qua implementatie van nieuwere technieken, zoals DNN.
Een gedetailleerde vergelijking tussen deze drie pakketten is te vinden in ‘Comparing Open-Source Speech Recognition Toolkits’ van Gaida, Lange, et al. (2014). Het is moeilijk om te achterhalen of alle systemen wel even goed geoptimaliseerd waren voor de vergelijking, maar we gaan er vanuit dat de verschillen wel representatief zijn. Op een ‘standaard’ Wall Street Journal taak (voorgelezen spraak) werden de beste resultaten behaald door Kaldi (6.5% WER), gevolgd HTK (19.8%) en Shinx (21.4%).
De combinatie van goede herkenprestaties, de ondersteuning van recente ontwikkelingen, en een goed bruikbare licentievorm, maken Kaldi voor dit project de meest voor de hand liggende keus. Allereerst worden modellen gebouwd met behulp van Gaussian Mixture Models. In een later stadium zullen ook Deep Neural Net gebaseerde modellen ontwikkeld worden.
November 18, 2015

Tags: , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *