GPSpeak

GPSpeak is een mobiele app die gebruik maakt van spraaktechnologieën zoals Siri en Google Assistant. Het kernidee is dat fietsers of joggers spraaknotities willen maken tijdens het sporten. De spraaknotities worden vervolgens gekoppeld aan een GPS-locatie en weergegeven op een kaart.

Van vaag idee naar concreet plan

O&O-fase

Omdat hij een fervent fietser is, komen er vaak ideeën en gedachten bij de klant op terwijl hij fietst, misschien iets dat te maken heeft met een project, of hij ontdekt nieuwe leuke routes of ontdekt een leuke plek die hij later wil bezoeken. Hij wilde hier een spraaknotitie over maken om later te verwerken, zodat hij zijn fietsroutes kon optimaliseren op basis van deze notities. Dus het sleutelconcept, zoals de naam al doet vermoeden, was het koppelen van spraaknotities met GPS-locaties.

Na het verkennen van verschillende ontwerpideeën en het verfijnen van het initiële aanbod samen met de klant, begonnen we te kijken naar de technische oplossingen. In eerste instantie hielden we van het idee van een aangepast wekwoord en speelden we met technologieën als porcupine en spokestack - die veelbelovend leken, maar vanwege de dure prijsmodellen die in werking zouden treden wanneer de app zou groeien, besloten we een andere route te nemen.

Omdat de meeste moderne telefoons zijn uitgerust met spraakassistenten zoals Siri en Google Assistant, besloten we dat het praktisch gezien een beter idee zou zijn om op die systemen in te haken. Het nadeel zou zijn dat we geen aangepast wekwoord konden gebruiken, maar het voordeel zou betere prestaties zijn.

De kracht en flexibiliteit van React Native

Ontwikkelinstellingen en spraakopdrachten

De ontwikkelingsfase van ons project maakte gebruik van de kracht en flexibiliteit van React Native, waardoor we een platformonafhankelijke mobiele applicatie konden maken die naadloos kon integreren met zowel iOS- als Android-apparaten. Deze keuze voor een framework stelde ons in staat om één codebase te behouden terwijl we ons op meerdere platforms richtten, wat ons ontwikkelingsproces aanzienlijk stroomlijnde.

Een van de belangrijkste onderdelen van onze implementatie was de integratie met spraakassistenten, met name Siri voor iOS-apparaten. We maakten gebruik van het react-native-siri-shortcut pakket, dat een brug vormde tussen onze React Native app en Apple's SiriKit framework. Dankzij deze integratie konden gebruikers de functionaliteit van onze app activeren via spraakopdrachten, waardoor het mogelijk werd om locatiegebonden spraaknotities te maken zonder de app handmatig te openen.

Het implementatieproces bestond uit het maken van aangepaste intenties en het configureren ervan om te werken met de specifieke functies van onze app. We definieerden een aangepaste snelkoppeling die onze functie voor het opnemen van spraaknotities activeerde en koppelden deze aan een zin als “GPSpeak”. Hierdoor konden gebruikers simpelweg “Hé Siri, GPSpeak” zeggen om het opnameproces te starten.

Aan de Android-kant onderzochten we soortgelijke integraties met Google Assistant, waarbij we het Actions on Google-platform gebruikten om aangepaste spraakopdrachten te maken die interactief waren met onze app. Hoewel de implementatiedetails iets verschilden van iOS, bleef het algemene concept hetzelfde - gebruikers een handsfree manier bieden om hun gedachten vast te leggen en deze te koppelen aan hun huidige locatie.

Functionaliteit

Opslag, zoeken en taggen

Voor de GPS-functionaliteit gebruikten we de bibliotheek react-native-geolocation, waarmee we de locatie van de gebruiker op het moment van de opname nauwkeurig konden vastleggen. Deze gegevens werden vervolgens gekoppeld aan de spraaknotitie in de database van onze app. Vanwege het persoonlijke karakter van deze app hebben we geen backend ontwikkeld. Alle gegevens worden lokaal op het apparaat opgeslagen.

We bouwden ook spraak-naar-tekst technologie, gebaseerd op react-native-voice - die de spraak naar tekst transcribeerde, waardoor het veel makkelijker werd om naar specifieke termen in de notities te zoeken. We maakten ook gebruik van Google API's om locaties in kaart te brengen voor een specifieke stad, zodat notities automatisch worden getagd per stad.

Afgezien van de stad tags, hebben we ook een aantal andere tags om de notities te organiseren, zoals interessante gedachten, route-informatie, point of interest, ... die gebruikers kunnen aanpassen aan hun behoeften. Dit alles leidt tot een systeem dat het heel gemakkelijk maakt om de notitie te vinden die je zoekt.


De gebruikerservaring verfijnen

Finetuning en uitdagingen

Naarmate de ontwikkeling vorderde, hebben we de gebruikerservaring steeds verder verfijnd, waarbij we ons concentreerden op het zo naadloos en intuïtief mogelijk maken van het aanmaken van spraaknotities. Dit betekende uitgebreid testen en herhalen, met name met betrekking tot de betrouwbaarheid van de spraakherkenning en de nauwkeurigheid van de locatietagging.

Een van de uitdagingen hierbij was het activeren van app-logica terwijl de app op de achtergrond was of zelfs in de slaapstand was gezet, wanneer het besturingssysteem gewoonlijk het gebruik van app-resources beperkt. We gebruikten react-native-background-actions om dit probleem aan te pakken. Dit betekende wel dat de gebruiker een sessie moest starten, zodat we de app op de achtergrond konden laten draaien, wachtend op spraaknotities, tijdens de sportactiviteit van de gebruiker.

Een andere uitdaging is dat fietsen vaak voor veel achtergrondgeluid zorgt, dus dit vereiste echt een goede wearable met ingebouwde stemassistentondersteuning, zoals de airpods van Apple.


De volgende stappen

Ontvangst en volgende stappen

De klant is de app intern nog aan het evalueren en is op zoek naar marketingideeën om deze naar het publiek te brengen. Eén ding is zeker, dit was een super interessant project met veel technische uitdagingen waar we veel van hebben geleerd.

Ook een project lanceren?

Neem contact met ons op en we bespreken graag uw ideeën.