Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Stemmegjenkjenning


Tore Andre Rosander

Anbefalte innlegg

Har samme spørsmål liggende på nFF, men får nok flere svar her inne tenker jeg.

Har i dag en Raspberry Pi med Jasper som stemmegjenkjenning og det fungerer ok om man sitter opptil 2 meter fra mikrofonen men den sliter fortsatt litt med bakgrunnstøy og feiltolkning, dette kan kanskje komme av sørlandsdialekten min selv om jeg prøver å uttale ordene på ren bokmål.
Det virker også som at hele Jasper prosjektet sjangler litt både i form av dårlig dokumentasjon og lite strukturert community. 

Jeg skjønner jo også at valget mitt om å bruke Norsk istedenfor engelsk spiller en liten rolle i selve gjenkjenningen. Bruker wit.ai som STT og Ivona med den Norske stemmen Liv som TTS.

Har satt sammen ett par moduler på Norsk som bla gjør at jenteungen på 5 år kan starte spillelister fra mediasenteret i stuen og styre en del smarthus funksjoner uten at hun trenger å inn i kontrollpanelet å begynne å rote.

I starten brukte jeg ett gammelt creative webkamera som kun funket opptil 1 meter fra mikrofonen. Byttet til PS3 Eye camera pga mikrofonspesifikasjonene og økte distansen med en god meter.

 

Det jeg sliter mest med er stemmegjenkjenning fra 2-3 meter og oppover.

Er det noen her som bruker lignende programvare og har noen anbefalinger?

Og hva vil dere anbefale som hotword? Har prøvd litt forskjellig som "Hei robot" som ofte tolkes som "Hei robert" og "Hei robåt", jeg har også testet Alexa som hotword men det tolkes ofte som "alex/aleks".

 

Hvilket Norsk ord er det mest unike man kan bruke som samtidig ikke høres skikkelig kleint ut når man roper det ut mens man har folk på besøk?

 

Har kikket på Alexa til raspberry pi men der må man trykke en knapp for å snakke til mikrofonen, dette kan sikkert løses med "ekstern" hotword detection programvare som simulerer en bryter på GPIO pinnene, men har ikke kikket noe nærmere på det.

Jeg har også ett nettbrett hengende på kjøkkenet med "OK google" og tasker som jeg kan bruke til samme formål men dette funker heller ikke veldig bra (kan hende det er mikrofonen i nettbrettet som er dårlig).

Google home og Alexa dot fra Amazon er jo gode alternativer sett fra ett hardware perspektiv, men ønsker å sette sammen noe selv da jeg har litt store planer for systemet på sikt.

Lenke til kommentar
Del på andre sider

1 time siden, Tore Andre Rosander skrev:

Det jeg sliter mest med er stemmegjenkjenning fra 2-3 meter og oppover.

Mikrofonvalg vil være vesentlig. Hvilken bruker du?

 

Alexa og Google Home har begge gode mikrofoner og ganske så hissig DSP for å filtrere bort bakgrunnstøy og forbedre det nødvendige talesignalet. Jeg er mer imponert at du får bra nok tale på 2-3 meter avstand, jeg. :) 

Lenke til kommentar
Del på andre sider

16 minutter siden, Moskus skrev:

Mikrofonvalg vil være vesentlig. Hvilken bruker du?

 

Alexa og Google Home har begge gode mikrofoner og ganske så hissig DSP for å filtrere bort bakgrunnstøy og forbedre det nødvendige talesignalet. Jeg er mer imponert at du får bra nok tale på 2-3 meter avstand, jeg. :) 

 

I følge utvikleren bak Jasper er det software det står på og ikke hardware når det kommer til DIY oppsett av stemmestyring/gjenkjenning.
Først brukte jeg ett gammelt creative webkamera, men jeg driver å tester Sony sitt Eye kamera til PS3 som har 4 mikrofoner som skal fungere ganske bra til formålet.
Det fungerer greit og er plug and play i linux men er usikker på om den faktisk benytter alle 4 mikrofonene.

Men behøver ikke nødvendigvis så aggressiv filtrering av støy, men jeg synes den bør oppfatte en stemme med litt autoritet fra 4-5 meter i ett stille rom.

Jeg tenkte også å teste en linux installasjon på en vanlig desktop for å se om det er raspberry-en som er flaskehalsen.

 

Jeg tipper akustikk og slikt også spiller en liten rolle når det kommer til hvor godt programvaren oppfatter stemmene når man ikke støy filtrering e.l (jeg aner ikke om jasper benytter seg av slikt).
 

Endret av Tore Andre Rosander
Lenke til kommentar
Del på andre sider

Som du sier er akustikk viktig. Men etterklangstiden i en typisk stue ligger vanligvis rundt 0,5-0,7 sekunder, så SÅ lang er ikke klangen. Med flere mikrofoner har man flere valg med signalbehandling for å få et enda bedre signal. Dette kunne vi snakket mye om men det hjelper ikke på problemstillingen. ;) 

 

Men mikrofonvalget er ikke uviktig (uansett hva noen påstår). Man kan ikke programmere seg bort fra en dårlig mikrofon, eller; det er i det minste ganske vanskelig. Webkameraer er f.eks. stort sett laget for å ikke plukke opp for mye bakgrunnstøy og lyd på lang avstand, nettopp fordi personen som bruker dem vanligvis sitter rett foran PCen. ;)

  • Like 1
Lenke til kommentar
Del på andre sider

15 timer siden, Moskus skrev:

Som du sier er akustikk viktig. Men etterklangstiden i en typisk stue ligger vanligvis rundt 0,5-0,7 sekunder, så SÅ lang er ikke klangen. Med flere mikrofoner har man flere valg med signalbehandling for å få et enda bedre signal. Dette kunne vi snakket mye om men det hjelper ikke på problemstillingen. ;) 

 

Men mikrofonvalget er ikke uviktig (uansett hva noen påstår). Man kan ikke programmere seg bort fra en dårlig mikrofon, eller; det er i det minste ganske vanskelig. Webkameraer er f.eks. stort sett laget for å ikke plukke opp for mye bakgrunnstøy og lyd på lang avstand, nettopp fordi personen som bruker dem vanligvis sitter rett foran PCen. ;)

Har hørt mye bra om å bruke Kinect kameraet til stemmegjenkjenning, men da anbefales Kinect SDK, som kun funker på Windows... sies det.

 

Det finnes også noen gode søkeord som: boundary microphone og Condenser microphone

 

Men jeg er på ingen måte ekspert i dette. Så andre må gjerne rette på meg hvis noe av dette er helt på jordet.

  • Like 1
Lenke til kommentar
Del på andre sider

3 minutter siden, Lazarus skrev:

Har hørt mye bra om å bruke Kinect kameraet til stemmegjenkjenning, men da anbefales Kinect SDK, som kun funker på Windows... sies det.

Ja. Kinect, som Amazon Echo og Google Home har glimrende talegjenkjenning. Det er både fordi mikrofonene er tilpasset talespekteret, og at de har DSP for å fjerne bakgrunnstøy, gjøre romkorreksjoner, etc.

 

Kjøp så god mikrofon du har råd til. En liten mixepult med 48V phantom spenning og en Behringer overhead-mikrofon burde kunne dekke store arealer. Men det finnes mange alternativer også.

Lenke til kommentar
Del på andre sider

1 minutt siden, Moskus skrev:

Ja. Kinect, som Amazon Echo og Google Home har glimrende talegjenkjenning. Det er både fordi mikrofonene er tilpasset talespekteret, og at de har DSP for å fjerne bakgrunnstøy, gjøre romkorreksjoner, etc.

Kinect lar deg jo gjøre det på en kjekk måte ettersom at du kan koble den til en Raspberry eller andre maskiner og derifra gjøre som du vil med inndata.

ikke bundet til Google/amazon rammeverkene.

Lenke til kommentar
Del på andre sider

Et øyeblikk siden, Lazarus skrev:

Kinect lar deg jo gjøre det på en kjekk måte ettersom at du kan koble den til en Raspberry eller andre maskiner og derifra gjøre som du vil med inndata.

ikke bundet til Google/amazon rammeverkene.

... og har en egen HomeSeer-plugin. :) 

Den kan kjøres remote, men som du sier krever det Windows, så den kan neppe kjøre på en RPi.

Lenke til kommentar
Del på andre sider

 

8 timer siden, Moskus skrev:

... og har en egen HomeSeer-plugin. :) 

Den kan kjøres remote, men som du sier krever det Windows, så den kan neppe kjøre på en RPi.

Kan jo håpe på en Win10 app? ?

Kan brukes på RPI men da uten den mer sofistikerte offisielle SDKen..

Da får du 4 "domme" lydstreamer som du kan herje med som du vil... sikkert kjekt for de som vil det. ?

Endret av Lazarus
Lenke til kommentar
Del på andre sider

16 hours ago, Moskus said:

Som du sier er akustikk viktig. Men etterklangstiden i en typisk stue ligger vanligvis rundt 0,5-0,7 sekunder, så SÅ lang er ikke klangen. Med flere mikrofoner har man flere valg med signalbehandling for å få et enda bedre signal. Dette kunne vi snakket mye om men det hjelper ikke på problemstillingen. ;) 

 

Men mikrofonvalget er ikke uviktig (uansett hva noen påstår). Man kan ikke programmere seg bort fra en dårlig mikrofon, eller; det er i det minste ganske vanskelig. Webkameraer er f.eks. stort sett laget for å ikke plukke opp for mye bakgrunnstøy og lyd på lang avstand, nettopp fordi personen som bruker dem vanligvis sitter rett foran PCen. ;)


Takk for mange innspill, når det kommer til utsagnet om at det er software det stopper så vil jeg tro at det gjelder når du har en OK + mikrofon koblet til.
I mitt tilfelle så skal Eye kameraet i teorien være nok. Men det er jo ett poeng i det @Lazarus sier om SDK-er for jeg vil tro at en del av arbeidet foregår på programvaresiden og at det er nettopp her programvaren er en flaskehals.

Men er det noen har som har tips til hva slags hotword som er mest unikt og samtidig ikke helt idiotisk å rope ut i stuen?

Grunnen til at jeg ønsker å kjøre DIY er at det er utrolig enkelt å lage moduler til feks Jasper. Har 2 unger på 3 og 5 år, så i tillegg til at jenta på 5 skal kunne styre en del av husets smarte funksjoner skal jeg også lage en robot til de, har de fleste delene til roboten liggende og har testet funksjonene hver for seg men jeg mangler bare en god stemmestyring for å knytte alt sammen.

Lenke til kommentar
Del på andre sider

7 timer siden, Tore Andre Rosander skrev:

Har 2 unger på 3 og 5 år, så i tillegg til at jenta på 5 skal kunne styre en del av husets smarte funksjoner skal jeg også lage en robot til de, har de fleste delene til roboten liggende og har testet funksjonene hver for seg men jeg mangler bare en god stemmestyring for å knytte alt sammen.

 

Dette var spennende. Litt OT, men kan du dele mer om denne roboten? Eller komme tilbake til den når den tar form?

Lenke til kommentar
Del på andre sider

33 minutes ago, eivtress said:

 

Dette var spennende. Litt OT, men kan du dele mer om denne roboten? Eller komme tilbake til den når den tar form?

 

En av mine største svakheter er at jeg har altfor mange baller i luften samtidig :P

Men den skal i hovedsak bestå av følgende:
Enten en vanlig fjernstyrt bil som plattform (da sitter allerede motorer og karosseri klart) hvor jeg fjerner den eksisterende elektronikken eller ett DIY byggesett til arduino.
Sort gjennomsiktig plexiglass som ansikt med små OLED skjermer på baksiden som skal vise øyne og munn.
Hjul/belter for fremdrift.
Stemmestyring, med mulighet for å synge sanger, fortelle vitser etc.
Infrarøde sensorer slik at den finner ladestasjonen av seg selv.
Ultrasoniske avstandsmålere for å kunne navigere og kjøre rundt på egenhånd.

Da den gamle robotstøvsugeren tok kvelden sparte jeg på batteriet og ladestasjonen, ladestasjonen sender ut infrarøde stråler som roboten vil kunne se.
Jeg er litt usikker på om jeg skal ha en RPi zero på selve roboten som hjerne, eller om RPi-en bare skal sende 2.4ghz signaler til en arduino for styring og bruke en trådløs høyttaler.
Batteriet jeg har liggende er på 2000mah som bør gi den en liten time brukstid pr lading med en RPi zero.

Har allerede testet en RPi zero med motorshield på en gammel fjernstyrt bil, og kan kjøre litt rundt ved hjelp av enkle Python script.

Andre funksjoner som kunne vært kult:
Bruke den som nattlys.
Den kan knyttes til Domoticz for så å kjøre til forskjellige rom når PIR-ene aktiveres.
Skremme innbruddstyver? :D
Sette på touchskjerm eller fargegjenkjennings moduler for å spille en form spill med den.
Laser for å underholde katten?

 

Lenke til kommentar
Del på andre sider

1 time siden, Tore Andre Rosander skrev:

 

En av mine største svakheter er at jeg har altfor mange baller i luften samtidig :P

Men den skal i hovedsak bestå av følgende:
Enten en vanlig fjernstyrt bil som plattform (da sitter allerede motorer og karosseri klart) hvor jeg fjerner den eksisterende elektronikken eller ett DIY byggesett til arduino.
Sort gjennomsiktig plexiglass som ansikt med små OLED skjermer på baksiden som skal vise øyne og munn.
Hjul/belter for fremdrift.
Stemmestyring, med mulighet for å synge sanger, fortelle vitser etc.
Infrarøde sensorer slik at den finner ladestasjonen av seg selv.
Ultrasoniske avstandsmålere for å kunne navigere og kjøre rundt på egenhånd.

Da den gamle robotstøvsugeren tok kvelden sparte jeg på batteriet og ladestasjonen, ladestasjonen sender ut infrarøde stråler som roboten vil kunne se.
Jeg er litt usikker på om jeg skal ha en RPi zero på selve roboten som hjerne, eller om RPi-en bare skal sende 2.4ghz signaler til en arduino for styring og bruke en trådløs høyttaler.
Batteriet jeg har liggende er på 2000mah som bør gi den en liten time brukstid pr lading med en RPi zero.

Har allerede testet en RPi zero med motorshield på en gammel fjernstyrt bil, og kan kjøre litt rundt ved hjelp av enkle Python script.

Andre funksjoner som kunne vært kult:
Bruke den som nattlys.
Den kan knyttes til Domoticz for så å kjøre til forskjellige rom når PIR-ene aktiveres.
Skremme innbruddstyver? :D
Sette på touchskjerm eller fargegjenkjennings moduler for å spille en form spill med den.
Laser for å underholde katten?

 

 

Dødsfett! Du må gjerne lage en byggelogg på forumet hvis du gidder.

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.