Dit jaar is het Residence Assistant Jaar van de stem. Het is ons doel voor 2023 om gebruikers Residence Assistant te laten bedienen door in hun eigen taal te spreken.
We hebben geweldig nieuws: de wake-words zijn eindelijk hier! Na 4 hoofdstukken hebben we nu de laatste bouwsteen voor stem in Residence Assistant.
In Hoofdstuk 1, zijn we begonnen met tekstcommando’s zoals “doe het keukenlicht aan” en “open garagedeur”. Wij nu ondersteuning van 56 talen en hebben 188 bijdragers die helpen bij het vertalen van algemene good home-opdrachten voor iedereen.
Hoofdstuk 2 introduceerde audio voor spraakopdrachten: zowel spraak-naar-tekst als tekst-naar-spraak. Dit omvatte lokale opties voor maximale privateness en ondersteuning voor Residence Assistant Cloud voor ongelooflijke snelheid en taaldekking. Als laatste binnen Hoofdstuk 3hebben we de mogelijkheid toegevoegd om Residence Assistant in te stellen als je standaardassistent op Android-telefoons en -horloges.
Voor hoofdstuk 4 hebben we nu wake-tekstverwerking toegevoegd in Residence Assistant. Wake-woorden zijn speciale woorden of zinnen die een stemassistent vertellen dat er een commando zal worden uitgesproken. Voorbeelden zijn: Hey Google, Hey Siri of Alexa.
De wake-words van Residence Assistant maken gebruik van een nieuw mission genaamd openWakeWord van David Scripka. Dit mission heeft nauwkeurigheid in de echte wereld, draait op gewone {hardware} en iedereen kan het een basismodel van hun eigen wake-word trainen binnen een uur, free of charge.
Volg onze bijgewerkte gids om vandaag nog wake-words te proberen de stemassistent van $ 13.
Om de videopresentatie van deze blogpost te bekijken, inclusief dwell demo’s, vinkt u aan de opname van onze livestream.
Wakewords in Residence Assistant
Wake-words zijn moeilijk te bouwen. Ze zijn gebaseerd op AI, er is weinig ruimte voor false positives en ze moeten extreem snel werken: zo snel als de audio binnenkomt. Je kunt een stemassistent niet laten luisteren 5 seconden nadat een wake-word is uitgesproken. Spraaksatelliethardware heeft over het algemeen niet veel rekenkracht, dus wake-word-engines hebben hardware-experts nodig om de modellen te optimaliseren zodat ze soepel werken.
We wilden ons niet beperken tot één sort {hardware}, dus besloten we de aanpak te veranderen: we doen de wake-word-detectie in Residence Assistant. Spraaksatellietapparaten zullen voortdurend de huidige audio in uw kamer samplen voor spraak. Wanneer de satelliet een stem detecteert, stuurt hij audio naar Residence Assistant, waar hij controleert of het wake-word is uitgesproken en het commando afhandelt dat erop volgde.
Overzicht van de wake-word-architectuur
Het voordeel van deze aanpak is dat elk apparaat dat audio streamt, in een spraaksatelliet kan worden veranderd, zelfs als het niet genoeg stroom heeft om lokaal wake-word-detectie uit te voeren. Het stelt onze ontwikkelaarsgemeenschap ook in staat eenvoudig te experimenteren met nieuwe wake-word-modellen, omdat ze deze niet eerst hoeven te verkleinen om op een spraaksatellietapparaat met laag vermogen te kunnen werken.
Volg onze bijgewerkte tutorial om het uit te proberen maak je eigen stemassistent van $ 13.
Er zijn nadelen aan deze aanpak. De eerste is dat de kwaliteit van de vastgelegde audio verschilt. Een speakerphone met meerdere microfoons en audioverwerkingschips legt de stem zeer zuiver huge. Een apparaat met één microfoon en geen nabewerking? Niet zo veel. We compenseren de slechte audiokwaliteit met audionabewerking in Residence Assistant en gebruikers kunnen betere spraak-naar-tekstmodellen gebruiken om de nauwkeurigheid te verbeteren, zoals die van Residence Assistant Cloud.
Het andere nadeel van deze aanpak is dat elke satelliet voortdurende bronnen binnen Residence Assistant nodig heeft wanneer deze audio streamt. Met onze huidige aanpak kunnen gebruikers vijf spraaksatellieten gebruiken zonder een Raspberry Pi 4 te overweldigen (ervan uitgaande dat alle satellieten tegelijkertijd streamen). Om op te schalen, hebben we geüpdatet het Wyoming-protocol om gebruikers in staat te stellen wake-word-detectie uit te voeren op een externe server.
Wyoming is ons protocol waarmee delen van een stemassistent in andere programma’s en/of computer systems kunnen worden uitgevoerd
Gebruikers kunnen per geconfigureerde stemassistent kiezen naar welk wekwoord ze moeten luisteren
openWakeWord
Voor de ingebouwde wake-words vertrouwen we op openWakeWord van David Scripka. Het is een technologisch surprise dat is gemaakt met 4 doelen voor ogen:
- Wees snel genoeg voor gebruik in de echte wereld
- Wees nauwkeurig genoeg voor gebruik in de echte wereld
- Zorg voor een eenvoudige modelarchitectuur en gevolgtrekkingsproces
- Er is weinig tot geen handmatige gegevensverzameling nodig om nieuwe modellen te trainen
Om zijn doelen te bereiken, is openWakeWord gebouwd rond een open supply audio-insluitingsmodel dat is getraind door Google en is verfijnd met behulp van ons tekst-naar-spraaksysteem Pijper. Piper wordt gebruikt om voor elk wake-word vele duizenden audiofragmenten te genereren met behulp van een unieke aanpak die eindeloze variaties van verschillende sprekers creëert. Deze audiofragmenten worden vervolgens zodanig uitgebreid dat ze klinken alsof ze in meerdere soorten kamers worden uitgesproken, op specifieke afstanden van een microfoon en met verschillende snelheden. Ten slotte worden de clips gemengd met achtergrondgeluiden zoals muziek, omgevingsgeluiden en gesprekken voordat ze worden ingevoerd in het trainingsproces om het wake-word-model te genereren.
Overzicht van de openWakeWord-trainingspijplijn.
Residence Assistant draait openWakeWord als add-on en wordt standaard geleverd met verschillende wake word-modellen, waaronder ons “Okay Nabu” -model. Klik op de onderstaande knop om deze te installeren.
Eenmaal geïnstalleerd, wordt de add-on ontdekt by way of de Wyoming-integratie.
OpenWakeWord werkt momenteel alleen voor Engelse wake-words. Dit komt omdat we modellen van andere talen met veel verschillende sprekers missen. Soortgelijke modellen voor andere talen kunnen worden getraind naarmate er meer modellen met meerdere sprekers per taal beschikbaar komen.
Als u Residence Assistant OS niet gebruikt, is openWakeWord ook beschikbaar als een Docker-container. Zodra de container actief is, moet u de Wyoming-integratie toevoegen en deze naar het IP-adres en de poort verwijzen (meestal 10400).
Maak je eigen wake-word
Wat openWakeWord uniek maakt, is de mogelijkheid om het mannequin van Google te verfijnen, getraind op fragmenten van echte stemmen, met nep-stemfragmenten gegenereerd door Piper. Dit maakt het mogelijk om je eigen wake-words te creëren zonder monsters van echte mensen te verzamelen (hoewel echte monsters de uitkomst kunnen verbeteren).
David heeft een Google Collab-notitieboekje gemaakt om uw eigen openWakeWord-model te maken. Voer het gewenste wake-word in en een uur later krijg je je eigen wake-word (met behulp van de free of charge pc die beschikbaar is voor alle Google Collab-gebruikers).
Bekijk onze nieuwe om aan de slag te gaan “maak je eigen wake-word”-tutorial.
De modellen die met de pocket book worden gegenereerd, zullen redelijk goed presteren. Ze zullen niet zo goed presteren als de apparaten die bij Residence Assistant worden geleverd en die een uitgebreide coaching hebben gekregen.
Schermafbeelding van het notitieboekje voor het genereren van wake-words
Andere wake-word-engines
In Residence Assistant leveren we onze standaardinstellingen, maar kunnen gebruikers elk onderdeel van hun stemassistenten configureren. Dit geldt ook voor onze wake-words.
Wakeword-engines kunnen worden geïntegreerd met Residence Assistant door ze toe te voegen als integratie, of door ze uit te voeren als een zelfstandig programma dat communiceert met Residence Assistant by way of het Wyoming-protocol.
Hoe wekwoorden integreren in Residence Assistant
We stellen bijvoorbeeld ook de Porcupine (v1) wake-word-engine beschikbaar. Het ondersteunt 29 wake-words in het Engels, Frans, Spaans en Duits, waaronder Pc, Framboise, Manzana en Stachelschwein.
Hergebruik en hergebruik: verschillende manieren om een spraaksatelliet te creëren
We bouwen onze stemassistent op foundation van onze Open Residence-visie: een slim huis dat privateness, keuze en duurzaamheid hoog in het vaandel heeft staan. Twee woorden die vaak worden genoemd als onderdeel van duurzaamheid zijn hergebruik en hergebruik.
Omdat onze spraaksatelliet alleen verantwoordelijk is voor het vastleggen van audio, kunnen veel apparaten die je in de ‘oude technologie’-la hebt liggen een nieuw leven en doel krijgen als spraaksatelliet.
Wanneer audio wordt vastgelegd by way of USB, raden we u aan een USB-luidsprekertelefoon te gebruiken, omdat deze audioverwerkingschips bevat die de audio opschonen en stemmen verbeteren. Ze worden ook geleverd met een luidspreker en zien er een beetje uit zoals je zou verwachten van een spraaksatelliet. We hadden geweldige resultaten tijdens onze assessments met de Anker PowerConf S330. Er was wel een firmware-update nodig voordat hij met Residence Assistant kon worden gebruikt.
Sommige USB-luidsprekertelefoons hebben een USB-hub met eigen voeding nodig vanwege de stroomlimieten op de USB-poorten van de Raspberry Pi.
Verander Residence Assistant in een spraaksatelliet
U kunt uw apparaat met Residence Assistant configureren om audio op te nemen en er een stemassistent van te maken. Om dit te doen, moet u een USB-microfoon of luidspreker aansluiten en de Help-microfoonadd-on configureren. Uw Residence Assistant-apparaat moet mogelijk opnieuw worden opgestart voordat de microfoon kan worden gebruikt.
Residence Assistant Blauw met speakertelefoon
Verander elke ESP32 in een spraaksatelliet met behulp van ESPHome
ESPHome is onze firmware waarmee gebruikers eenvoudig apparaten voor hun slimme huis kunnen maken. In Jaar van de Stem – Hoofdstuk 2 hebben we ondersteuning toegevoegd voor ESPHome om spraakopdrachten te accepteren wanneer een gebruiker op een knop drukt.
Tegenwoordig wordt die ondersteuning uitgebreid zodat elk ESP32-apparaat met een i2s-microfoon een spraaksatelliet voor Residence Assistant kan worden.
Stemassistent op een breadboard.
Aanbevolen onderdelen:
Deze methode vereist dat gebruikers basiservaring hebben met het configureren van ESPHome-apparaten.
Verander elke oude Raspberry Pi in een spraaksatelliet
Wij hebben gemaakt homeassistant-satelliet beschikbaar waarmee je een USB-microfoon of speakerphone kunt aansluiten op een oude Raspberry Pi of een andere Linux-computer, en er een spraaksatelliet voor Residence Assistant van kunt maken.
Hoewel elke Linux-computer werkt, raden we aan deze te beperken tot ARM-gebaseerde processors, omdat deze veel minder energie verbruiken.
Deze methode vereist dat gebruikers weten hoe ze applicaties op een Linux-systeem moeten installeren.
Stemspreekuur voor wetenschappers
We willen dat Residence Assistant wordt gebruikt als platform voor wetenschappers die nieuwe wake-word-, spraak-naar-tekst- en tekst-naar-spraak-engines ontwikkelen. Door met Residence Assistant te werken, kunt u uw mannequin uitproberen als onderdeel van een stemassistent in een realistisch situation. De Residence Assistant-gemeenschap houdt van nieuwe technologie en zal deze geweldig testen en suggestions geven.
Motoren kunnen worden aangesloten op de spraakpijplijnen van Residence Assistant het Wyoming-protocol. Hoewel klein, kan het Wyoming-protocol lastig zijn om goed te krijgen voor beginnende integrators. Bent u zo iemand, neem dan contact met ons op by way of (e-mail beveiligd) en wij helpen u integreren.
Wat is het volgende
Nu de foundation voor alle onderdelen van een stemassistent ligt, kunnen we makkelijker delen waar we verder aan gaan werken.
We willen werken aan het ondersteunen van de meest voorkomende taken die mensen gebruiken met andere stemassistenten. Dit omvat ondersteuning voor meerdere boodschappenlijstjes, timers en weersvoorspellingen.
Om de nauwkeurigheid te verbeteren, maakt openWakeWord het mogelijk het mannequin verder te verfijnen met opnames gemaakt door de gebruiker by way of zijn eigen spraaksatelliet. We willen dat gebruikers zichzelf gemakkelijk kunnen opnemen en laten Residence Assistant dit verbeterde mannequin maken.
Aan de kant van de spraaksatelliet gaan we meer geavanceerde audioverwerking integreren om de nauwkeurigheid van wake-word en spraak-naar-tekst te verbeteren. We zullen ook nog een poging doen om wake-words binnen ESPHome te laten werken.
De verbeteringen aan de spraaksatelliet vereisen meer geavanceerde {hardware} en we mikken op de ESP32 S3 Field 3. Dit is de nieuwe variant van de inmiddels stopgezette ESP32 S3 Field (en lite-versie). Espressif vertelde ons dat het binnenkort op voorraad zal zijn.
Als u al een ESP32 S3 Field-variant heeft, kunt u deze installeren onze ESPHome-configuratie om deze updates te ontvangen zodra ze beschikbaar komen.
Het zit er op!
We hopen dat je geniet van de wake-words en dat je spraaksatellieten rond je huis opzet. Laat ons weten hoe het gaat en deel uw ervaring met ons.
Tot snel in hoofdstuk 5!
Bedankt
Hartelijk dank aan David Scripka voor openWakeWord. Dank aan Jesse Hills voor zijn geduld en steun terwijl Mike en ik wake-word-architecturen verkenden en ESPHome hielpen erbij te horen. Grote dank aan iedereen bij Nabu Casa die heeft geholpen bij het maken en beoordelen van de inhoud van vandaag.
Bedankt aan de Residence Assistant-community voor je abonnement Residence Assistant-cloud ter ondersteuning van Yr of the Voice en de ontwikkeling van Residence Assistant, ESPHome en andere projecten in het algemeen.
Dank aan onze taalleiders voor het uitbreiden van de strafondersteuning naar alle verschillende talen.