Speech to text - R2D2KLASB/Info GitHub Wiki

Inleiding

Dit is de inleiding voor de module van speech to text. In onderstaande delen zal u kunnen lezen welke design keuzes we gemaakt hebben, wat we hebben geprobeerd en waar we momenteel staan. Dit zal enkele sprint weer worden aangepast tot het einde van het project. Naast deze documentatie zal er ook in de code zelf gebruik worden gemaakt van doxygen zodat daar te zien is wat iedere functie doet.

Documentatie

We hebben meerdere branches op de Github. 1 hiervan is bedoeld voor het opnemen van de stem en deze dmv de microsoft API om te zetten naar een tekst. Dit wordt van een json format geswitch naar een string. Dit wordt vervolgens omgezet tot Gcode. Deze Gcode wordt vervolgens gestuurd naar de teken robot.

Deze Json string zal worden omgezet naar de Gcode wat vervolgens in een node wordt gezet. Deze Gode zal worden gestuurd in een string naar de teken robot. Daarnaast moet er een modes zijn om zeeslag te spelen.

Design keuzes

API

In eerste instantie hebben we geprobeerd de API van Google te gebruiken voor het daadwerkelijk omzetten van de text. Echter kwamen we erachter dat de API van Microsoft makkelijker werkt. Beide waren aan te roepen met de CURL library.

Opnamen spraak

Voor het opnemen van de stem hebben wij gekozen voor Portaudio. Deze werkt namelijk op windows en linux. Tevens kan je hierbij meerdere geluids channels gebruiken. Echter zullen wij dit waarschijnlijk niet nodig hebben.

Joystick keuzes:

We hebben gekozen om de joystick aan te sluiten via een arduino. Hiervoor is gekozen omdat we het anders via de matrix header moesten doen. Hier zouden we slechts 6 pins beschikbaar hebben waar geen van 5V uitgeeft. Wij zouden dan 1 pin standaard hoog moeten zetten en de met de overige 5 pins 6 buttons (4 voor de joystick 2 voor de knoppen) moeten uitlezen. Doordat 2 buttons dan dezelfde funtionaliteit zouden moeten hebben hebben we ervoor gekozen om het te doen op een arduino. Dit leverd helaas meer werk op omdat we de arduino willen gebruiken die ook gebruikt wordt voor het schermpje van hardware. 1 Arduino moet dus 2 verschillende seriele bussen aansturen.

Matrix keuze:

De matrix is gekozen voor de grote. Origineel was dit niet de juiste, we wilde namelijk een met een hogere pixel density. Door een fout aan onze kant is eentje besteld van 32*16 pixels besteld. Op de matix zijn verschillende animaties te zien. Zoals een animatie voor een shot wat mis is geschoten en een animatie voor een raak geschoten schot.

Spraak (zeeslag):

De speler kan door op de knop te drukken de locatie inspreken. Mocht de speler dan tijdens de timer van het inspreken van gedachte veranderen dan kan hij nog snel een nieuwe positie inspreken en dan pakt hij de laatst opgegeven locatie om te vuren.