SNIPS: Sprachsteuerung (mittlerweile auch per Textcommands) über snips.ai

Begonnen von Thyraz, 21 Juli 2018, 20:28:48

Vorheriges Thema - Nächstes Thema

drhirn

Zitat von: nanocosmos am 01 Juni 2019, 13:34:19
Würde meine Snips Satelitten und den RPI mit der Snips Base gerne als Spotify / Radio Player  nutzen.

Das Problem wird sein, dass sich der Snips-Audio-Server exklusiven Zugriff auf die "Sound-Karte" nimmt. Da müsstest du dann wohl eine zweite verwenden.

nanocosmos

Ah ok. Das ist leider nicht so optimal.
Habe die Satelitten mit einem ReSpeaker versehen und in ein Case gepackt. Da passt keine weitere Soundkarte rein. [emoji848]

Danke für die Info!

JensS

Bei meinem Snips läuft gerade Internetradio parallel zu den Audioausgaben von Snips. Ahnungslos habe ich folgende configs probiert:
/etc/asound.conf# The IPC key of dmix or dsnoop plugin must be unique
# If 555555 or 666666 is used by other processes, use another one


# use samplerate to resample as speexdsp resample is bad
defaults.pcm.rate_converter "samplerate"

pcm.!default {
    type asym
    playback.pcm "playback"
    capture.pcm "capture"
}

pcm.playback {
    type plug
    slave.pcm "Snips"
}

pcm.Snips {
    type softvol
    slave.pcm "dmixed"
    control {
name "Snips"
card "seeed2micvoicec"
    }
}

ctl.Snips {
    type hw
    card "seed2micvoicec"
}

pcm.MPDplug {
    type plug
    slave.pcm "MPDvol"
}

pcm.MPDvol {
    type softvol
    slave.pcm "dmixed"
    control {
name "MPDvolume"
card "seeed2micvoicec"
    }
}

ctl.MPDvol {
    type hw
    card "seed2micvoicec"
}

pcm.capture {
    type plug
    slave.pcm "array"
}

pcm.dmixed {
    type dmix
    ipc_key 555555
    ipc_perm 0666
    ipc_key_add_uid false
    slave {
    pcm "hw:seeed2micvoicec"
    period_time 0
    period_size 1024
    buffer_size 8192
#    rate 44100
    }
    bindings {
0 0
1 1
    }
}

pcm.array {
    type dsnoop
    slave {
        pcm "hw:seeed2micvoicec"
        channels 2
    }
    ipc_key 666666
}


Edit: Regler "Snips" eingefügt, um mit alsamixer die Sprachausgabe separat regeln zu können.

Auszug aus /etc/mpd.confaudio_output {
type "alsa"
name "My ALSA Device"
device "plug:MPDplug"
mixer_type      "software"
mixer_device "MPDvol"
mixer_control "MPDvolume"
}


Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

drhirn

Ok, spannend. Bei mir hat Snips immer alles blockiert. Muss ich dann wohl wiedermal ausprobieren.

Che007

@nanocosmos

Welches Case benutzt du, so dass auch der Respeaker reinpasst?

@dirigent
Nutzt du die Radio App, die bei Snips angeboten wird?

JensS

Ja, allerdings liegt mein FHEM auf einem anderen Server (RPi3+).
https://wiki.fhem.de/wiki/MPD
define Radio MPD 192.168.x.x 6600
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

nanocosmos

@Chs007

Nutze dieses Case: https://www.thingiverse.com/thing:3365335

Da drinnen werkelt ein Raspi Zero mit ReSpeaker 2 Mic und einer Box.

Che007

Danke euch beiden.
Mein FHEM liegt auch auf einem anderen Pi von daher sollte es ja passen.

@nanocosmos
Ok 3D Drucker habe ich nicht, aber so weiße Kästchen gibt es auch im Baumarkt :)

Che007

Hallo zusammen,

irgendwie stehe ich auf dem Schlauch. Ich kann zurzeit normale on:off Geräte steuern, doch das Radio kriege ich nicht aktiviert. Über FHEM Webseite funktioniert es ohne Probleme start - stop - Knopf, aber Snips kann die Anweisung "Spiele Radio SWR3" nicht richtig zuordnen. Lt. Sam Watch wird das Gesprochene richtig erkannt. Ich denke, dass ich ein Fehler im Mapping habe, aber ich sehe es nicht.

Anbei die Einrichtung des Radios.

Vielen Dank.

JensS

attr <MPD-Device> snipsChannels swr3=playlist swr3

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Che007

Danke das wars :)

Habe jetzt nur das Problem, dass die Snips Ansage, dass das Kommando ausgeführt wurde, direkt das Radio pausiert und dann nicht weiterspielt.
Kann man das irgendwie umgehen, oder die Bestätigungsansage fürs Radio deaktvieren?

JensS

Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Che007

Danke für die aktualisierten Configs.

Ich habe die Karte seeed4micvoicec welches keine Audio-Out besitzt.

Theoretisch könnte ich die asound.conf auf die Pi-Klinke ummüntzen?! Ich versuche es mal und gebe Rückmeldung.

JensS

Hab mir mal dir config für seeed4micvoicec angeschaut. Sollte so passen. Fast alle seeed2micvoicec müssten auf ALSA geändert werden. Den letzten Eintrag unter type dsnoop auf seeed4micvoicec ändern.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Che007

Danke Jens,

scheint noch nicht so ganz zu klappen:
ALSA lib pcm_dmix.c:1109:(snd_pcm_dmix_open) unable to open slave
alsa_output: Failed to open "My ALSA Device" [alsa]: Failed to open ALSA device "plug:MPDplug": Invalid argument

in der mpg.log

Edit:
OK, komme der Sache näher. Hab in der mpd.conf auf:
device: "plughw:0,0" geändert.

Jedoch höre ich die Snips antworten nicht mehr.
"Error: ALSA lib pcm_dmix.c:1109:(snd_pcm_dmix_open) unable to open slave"
Musik spielt nun normal.
Wahrscheinlich drehe ich mich im kreis.