Ankündigung

Einklappen
Keine Ankündigung bisher.

Snips AI Offline Spracherkennung in Edomi

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Delta6400 Meinst Du nicht das da vielleicht etwas wenig Platz im Taster ist, um eim Mikrofonarray, und LS unterzubringen? Wenn ich mir die Matrix von https://www.hackster.io/matrix-labs/...project-63b9cd anschaue, bezweifel ich, das dies in einen Taster passt. Und wenn ich vor dem Taster stehen muss, damit er die Sprache erkennt, kann ich auch gleich drücken.....
    Mfg Micha
    Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

    Kommentar


      Die kleinen Matrix haben 80mm Durchmesser das ist definitiv nix für ne Schalterdose.
      ----------------------------------------------------------------------------------
      "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
      Albert Einstein

      Kommentar


        Wie wär's mit dem hier freigeschnitten.png
        Chris (https://proknx.com)
        NEU: ARAGON - Sprachsteuerung ohne Cloud in der Schalterdose https://proknx.com/aragon-de
        Ausserdem: Automatisierungsideen mit NodeRED: (Logik, Sprachausgabe, Fremdprotokolle uvm)

        Kommentar


          Die Matrix kenne ich und hab ich auch schon gesehen.
          Aber man kann es ja dann auch "nur" mit 2 Mikrofonen machen (oben/unten).
          Hier ist natürlich wirklich die Frage, ob die Entfernung um die Sprache zu verstehen zu groß ist.
          Das zeigt dann ein Test.
          Ich hab folgendes gesehen und bestell mir wahrscheinlich eins mal: INMP441
          Ist ein Mikrofon was das Signal per I2S weitergibt.

          Bezüglich Taster und nur KNX Leitung:
          Dann hat man ja die Spannung schon und sendet das Sprach-Signal per WLAN.
          Gruß,
          Andreas

          Kommentar


            Spannung schon, aber auch nicht unbegrenzt Strom, zumindest nicht aus dem Bus. Natürlich kann man über weiss / gelb etwas mehr aus den Vollen schöpfen.
            Mfg Micha
            Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

            Kommentar


              Für einen ESP aber ausreichend.
              Und sonst kann man ja zur Sicherheit eine Strombegrenzung noch einbauen.
              Aber erst einmal schauen ob es generell ohne Matrix gut funktioniert.
              Gruß,
              Andreas

              Kommentar


                https://www.heise.de/newsticker/meld...s-4593521.html

                Das war es wohl mit Snips.
                Einige Skill-Entwickler sind wohl echt angefressen, da sie eine Menge Arbeit und Zeit investiert haben.
                Snips hat sein Versprechen, einige Komponenten irgendwann mal open-source zu machen, nie wirklich eingelöst, obwohl sie damit geworben haben.

                Alternative: https://rhasspy.readthedocs.io/en/latest/
                Bietet eine Oberfläche und man kann das ganze Training der ASR und der NLU auch direkt zuhause durchführen (vgl. Snips Console -> Train assistant).

                https://community.home-assistant.io/...-toolkit/60862

                Kommentar


                  Achso, falls noch irgendwer vorsichtshalber die Paketquellen sichern möchte.
                  Ich habe es mit apt-mirror gemacht.

                  So sieht meine /etc/apt/mirror.list aus:

                  Code:
                  ############# config ##################
                  #
                  # set base_path    /var/spool/apt-mirror
                  #
                  # set mirror_path  $base_path/mirror
                  # set skel_path    $base_path/skel
                  # set var_path     $base_path/var
                  # set cleanscript $var_path/clean.sh
                  # set defaultarch  <running host architecture>
                  # set postmirror_script $var_path/postmirror.sh
                  # set run_postmirror 0
                  set nthreads     20
                  set _tilde 0
                  #
                  ############# end config ##############
                  
                  #deb http://archive.ubuntu.com/ubuntu artful main restricted universe multiverse
                  #deb http://archive.ubuntu.com/ubuntu artful-security main restricted universe multiverse
                  #deb http://archive.ubuntu.com/ubuntu artful-updates main restricted universe multiverse
                  #deb http://archive.ubuntu.com/ubuntu artful-proposed main restricted universe multiverse
                  #deb http://archive.ubuntu.com/ubuntu artful-backports main restricted universe multiverse
                  
                  #deb-src http://archive.ubuntu.com/ubuntu artful main restricted universe multiverse
                  #deb-src http://archive.ubuntu.com/ubuntu artful-security main restricted universe multiverse
                  #deb-src http://archive.ubuntu.com/ubuntu artful-updates main restricted universe multiverse
                  #deb-src http://archive.ubuntu.com/ubuntu artful-proposed main restricted universe multiverse
                  #deb-src http://archive.ubuntu.com/ubuntu artful-backports main restricted universe multiverse
                  
                  #clean http://archive.ubuntu.com/ubuntu
                  
                  #
                  # from https://docs.snips.ai/articles/other-platforms
                  #
                  
                  # Debian i386, amd64
                  deb [arch=amd64] https://debian.snips.ai/stretch stable main
                  deb [arch=i386]  https://debian.snips.ai/stretch stable main
                  
                  # Raspbian armv7(respeaker_iot, armhf), armv8(stretch, armhf) and arm64(buster)
                  deb [arch=armhf] https://raspbian.snips.ai/respeaker_iot stable main
                  deb [arch=armhf] https://raspbian.snips.ai/stretch stable main
                  deb [arch=arm64] https://raspbian.snips.ai/410c_linaro_buster stable main
                  
                  clean https://debian.snips.ai/stretch
                  clean https://raspbian.snips.ai/stretch
                  clean https://raspbian.snips.ai/respeaker_iot
                  clean https://raspbian.snips.ai/410c_linaro_buster
                  Dann auch nur "apt-mirror" aufrufen. Sind dann knapp 4GB.

                  Kommentar


                    Zitat von Nanosonde Beitrag anzeigen
                    Alternative: https://rhasspy.readthedocs.io/en/latest/
                    Bietet eine Oberfläche und man kann das ganze Training der ASR und der NLU auch direkt zuhause durchführen (vgl. Snips Console -> Train assistant).

                    https://community.home-assistant.io/...-toolkit/60862
                    Hat das schonmal jemand probiert in kombi mit edomi?

                    Kommentar


                      Das scheint´s nun endgültig gewesen zu sein:

                      https://forum.snips.ai/t/important-m...s-console/4145

                      So ein shit ... wollte gerade mit warm werden!

                      Kommentar


                        Ich sag ja Sonos ist ne Verbrecherbande, keine Ahnung warum sich das soviele ins Haus bauen...
                        ----------------------------------------------------------------------------------
                        "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
                        Albert Einstein

                        Kommentar


                          Zitat von gbglace Beitrag anzeigen
                          keine Ahnung warum sich das soviele ins Haus bauen
                          Na weils lange Zeit keine Alternativen gab und die damit eine Art Standard geworden sind. Und der reguläre mittelbegabte User findet das System total super, dem ist auch egal was hier irgendwelche Randgruppen mit Snips bisher gemacht haben, da wird nicht über den Tellerrand geschaut, meist nichtmal bis zur Gabel.

                          Kommentar


                            Schade zu hören, dass es jetzt schon vorbei ist.
                            Ich hätte echt gerne damit Zeit verbracht :/
                            Naja, dann kommt erst einmal keine Sprachsteuerung ins Haus
                            Gruß,
                            Andreas

                            Kommentar


                              Ich bin heute auf Jasper als mögliche snips Alternative gestossen. Hat sich das von euch schon mal jemand angesehen?
                              Da gibt es auch schon ein MQTT Modul.

                              Kommentar


                                Hallo zusammen,

                                seit Tagen schon breche ich mir einen ab mit dem abändern des snips LBS auf einen Rhasspy JSON string. Aber egal was ich probiere, ich kriege das device aus E4 bzw E10 bis E19 einfach nicht in den log geschrieben.

                                Eigentlich schaut der string vom rhasspy nicht so sehr anders aus:

                                Code:
                                {"sessionId": "", "siteId": "default", "input": "licht wohnen an", "intent": {"intentName": ":switchlight", "confidenceScore": 0.6666666666666667}, "slots": [{"slotName": "device_name", "confidence": 1, "value": {"kind": "device_name", "value": "licht"}, "rawValue": "licht"}, {"slotName": "rooms_name", "confidence": 1, "value": {"kind": "rooms_name", "value": "wohnen"}, "rawValue": "wohnen"}, {"slotName": "switchstate_name", "confidence": 1, "value": {"kind": "switchstate_name", "value": "an"}, "rawValue": "an"}], "asrTokens": [], "asrConfidence": 1}
                                intentName wird auch ausgegeben. Allerdings der slot "device_name" nicht.

                                Hier der log:
                                Code:
                                2020-01-25 21:10:57 165729 29965 debug LBS19000289 [v0.11]: LBS: LBS started
                                2020-01-25 21:10:57 167273 29965 debug LBS19000289 [v0.11]: LBS: Payload changed to {"sessionId": "", "siteId": "default", "input": "licht wohnen an", "intent": {"intentName": ":switchlight", "confidenceScore": 0.6666666666666667}, "slots": [{"slotName": "device_name", "confidence": 1, "value": {"kind": "device_name", "value": "licht"}, "rawValue": "licht"}, {"slotName": "rooms_name", "confidence": 1, "value": {"kind": "rooms_name", "value": "wohnen"}, "rawValue": "wohnen"}, {"slotName": "switchstate_name", "confidence": 1, "value": {"kind": "switchstate_name", "value": "an"}, "rawValue": "an"}], "asrTokens": [], "asrConfidence": 1}
                                2020-01-25 21:10:57 168636 29965 debug LBS19000289 [v0.11]: On Array
                                2020-01-25 21:10:57 168824 29965 debug LBS19000289 [v0.11]: ================ ARRAY/OBJECT START ================
                                2020-01-25 21:10:57 168986 29965 debug LBS19000289 [v0.11]: ["ein","an","einschalten","auf","aufdrehen"]
                                2020-01-25 21:10:57 169126 29965 debug LBS19000289 [v0.11]: ================ ARRAY/OBJECT END ================
                                2020-01-25 21:10:57 171613 29965 debug LBS19000289 [v0.11]: Off Array
                                2020-01-25 21:10:57 171896 29965 debug LBS19000289 [v0.11]: ================ ARRAY/OBJECT START ================
                                2020-01-25 21:10:57 171999 29965 debug LBS19000289 [v0.11]: ["aus","ausschalten","ab","abdrehen"]
                                2020-01-25 21:10:57 172192 29965 debug LBS19000289 [v0.11]: ================ ARRAY/OBJECT END ================
                                2020-01-25 21:10:57 173695 29965 debug LBS19000289 [v0.11]: Lese Eingang 10 wohnen
                                2020-01-25 21:10:57 176570 29965 debug LBS19000289 [v0.11]: Lese Eingang 11 wc
                                2020-01-25 21:10:57 178880 29965 debug LBS19000289 [v0.11]: Lese Eingang 12 kueche
                                2020-01-25 21:10:57 183600 29965 debug LBS19000289 [v0.11]: Lese Eingang 13
                                2020-01-25 21:10:57 184863 29965 debug LBS19000289 [v0.11]: Lese Eingang 14
                                2020-01-25 21:10:57 186572 29965 debug LBS19000289 [v0.11]: Lese Eingang 15
                                2020-01-25 21:10:57 188608 29965 debug LBS19000289 [v0.11]: Lese Eingang 16
                                2020-01-25 21:10:57 190013 29965 debug LBS19000289 [v0.11]: Lese Eingang 17
                                2020-01-25 21:10:57 191255 29965 debug LBS19000289 [v0.11]: Lese Eingang 18
                                2020-01-25 21:10:57 192467 29965 debug LBS19000289 [v0.11]: Lese Eingang 19
                                2020-01-25 21:10:57 193691 29965 debug LBS19000289 [v0.11]: Device Array
                                2020-01-25 21:10:57 193876 29965 debug LBS19000289 [v0.11]: ================ ARRAY/OBJECT START ================
                                2020-01-25 21:10:57 193957 29965 debug LBS19000289 [v0.11]: {"10":"wohnen","11":"wc","12":"kueche"}
                                2020-01-25 21:10:57 194024 29965 debug LBS19000289 [v0.11]: ================ ARRAY/OBJECT END ================
                                2020-01-25 21:10:57 195275 29965 debug LBS19000289 [v0.11]: Value Array
                                2020-01-25 21:10:57 195419 29965 debug LBS19000289 [v0.11]: ================ ARRAY/OBJECT START ================
                                2020-01-25 21:10:57 195492 29965 debug LBS19000289 [v0.11]: ["switchstate_name"]
                                2020-01-25 21:10:57 195558 29965 debug LBS19000289 [v0.11]: ================ ARRAY/OBJECT END ================
                                2020-01-25 21:10:57 197402 29965 debug LBS19000289 [v0.11]: On found 1
                                2020-01-25 21:10:57 198677 29965 debug LBS19000289 [v0.11]: Snips IntentName found switchlight
                                2020-01-25 21:10:57 200014 29965 debug LBS19000289 [v0.11]: Slot Name Device not found
                                2020-01-25 21:10:57 201293 29965 debug LBS19000289 [v0.11]: Slot Name Value found 1
                                2020-01-25 21:10:57 202516 29965 debug LBS19000289 [v0.11]: Slot Name Device not in array
                                Angelehnt war das an den erweiterten LBS 19000289:

                                PHP-Code:
                                ###[DEF]###
                                [name = Snips Value 0.11]

                                [e#1 option = Debug #init=3 ]
                                [e#2 trigger = MQTT Payload ]
                                [e#3 important = Snips IntentName #init=Switch ]
                                [e#4 important = Slot Name Device #init=Device ]
                                [e#5 important = Slot Name Value #init=value ]
                                [e#6 important = Slot On Synonyms #init=ein,an,einschalten,auf,aufdrehen ]
                                [e#7 important = Slot Off Synonyms #init=aus,ausschalten,ab,abdrehen ]
                                [e#8 trigger = Generate Snips Import Strings #init=0 ] No change needed, will trigger once on startup anyway
                                [e#9 option = Multiplikator ]

                                [e#10 = Names 0 ]
                                [e#11 = Names 1 ]
                                [e#12 = Names 2 ]
                                [e#13 = Names 3 ]
                                [e#14 = Names 4 ]
                                [e#15 = Names 5 ]
                                [e#16 = Names 6 ]
                                [e#17 = Names 7 ]
                                [e#18 = Names 8 ]
                                [e#19 = Names 9 ]

                                [a#1 = Snips Slot Device Import] Copy this output for import as Snips Slots for Devices
                                [a#2 = Snips Slot On-Off Import] Copy this output for import as Snips Slots for On-Off
                                [a#10 = Output 0 ]
                                [a#11 = Output 1 ]
                                [a#12 = Output 2 ]
                                [a#13 = Output 3 ]
                                [a#14 = Output 4 ]
                                [a#15 = Output 5 ]
                                [a#16 = Output 6 ]
                                [a#17 = Output 7 ]
                                [a#18 = Output 8 ]
                                [a#19 = Output 9 ]

                                [v#100 = 0.11 ] // Version
                                [v#101 = 19000289 ] // LBS ID
                                [v#102 = Snips value] // LBS name
                                [v#103 = 3 ] // Loglevel
                                [v#104 = 1 ] // One logfile per instance
                                [v#105 = 1 ] // log ID in each line

                                ###[/DEF]###


                                ###[HELP]###
                                ###[/HELP]###

                                ###[LBS]###
                                <?php
                                function LB_LBSID($id) {
                                if (
                                $E=logic_getInputs($id)) {
                                if (
                                $E[2]['refresh'] == && $E[2]['value'] != "") {
                                setLogicElementVar($id103$E[1]['value']); // set loglevel to #VAR 103
                                LB_LBSID_logging($id"LBS: LBS started",7);
                                LB_LBSID_logging($id"LBS: Payload changed to ".$E[2]['value'], 6);
                                $jsonArray json_decode($E[2]['value'], true); /// hier wird json decodiert aus Eingang 2(payload MQTT) !!!!!!!!!!!!!
                                if(json_last_error() == JSON_ERROR_NONE){
                                $entity strtolower(trim($E[4]['value'])); /// hier Eingang 4="slot name device": kleinb. + leerz. weg evtl c&p für weiteren eingang!!!!
                                $OnArray explode(",",strtolower(trim($E[6]['value']))); /// explode trennt: hier durch Komma , Eingang 6 = slotONsynonyms
                                LB_LBSID_logging($id,"On Array ",8,$OnArray);
                                $OffArray explode(",",strtolower(trim($E[7]['value'])));
                                LB_LBSID_logging($id,"Off Array ",8,$OffArray);
                                $jsonArray json_decode($E[2]['value'], true);
                                for (
                                $i 10$i 20$i++) {
                                LB_LBSID_logging($id"Lese Eingang $i ".$E[$i]['value'],8);
                                if(
                                $E[$i]['value'] != ''){
                                $locationArray[$i] = strtolower(trim($E[$i]['value']));
                                }}
                                LB_LBSID_logging($id,"Device Array ",8,$locationArray);
                                $intenName explode(":",$jsonArray["intent"]["intentName"]); /// explode trennt: hier durch :
                                $intenName strtolower(trim($intenName[1]));

                                $pos $loc $ent '';
                                unset(
                                $val);
                                $Name false;
                                if ( 
                                $intenName == strtolower(trim($E[3]['value'])) ) { /// E3=slot intentName
                                $ent $intenName;
                                $valueArray explode(","strtolower($E[5]['value']));
                                LB_LBSID_logging($id,"Value Array ",8,$valueArray);
                                $switch 0;

                                foreach(
                                $jsonArray['slots'] as $slots ){
                                if(
                                strtolower(trim($slots['slotName'])) == strtolower(trim($E[5]['value']))){ /// E5=slot name value
                                $Name=true;
                                break;
                                }}
                                if(
                                $Name){
                                foreach(
                                $jsonArray['slots'] as $slots ){
                                if(
                                in_array(strtolower(trim($slots['value']['value'])),$locationArray)){
                                if(
                                strtolower(trim($slots['entity'])) == $entity){
                                $loc $slots['value']['value'];
                                $posarray = (array_keys($locationArraystrtolower(trim($slots['value']['value']))));
                                $pos $posarray[0];
                                break;
                                }}}
                                foreach(
                                $jsonArray['slots'] as $slots ){
                                if(
                                in_array(strtolower(trim($slots['value']['value'])),$OnArray)){
                                $val 1;
                                LB_LBSID_logging($id,"On found $val ",8);
                                $switch 1;
                                break;
                                }}
                                foreach(
                                $jsonArray['slots'] as $slots ){
                                if(
                                in_array(strtolower(trim($slots['value']['value'])),$OffArray)){
                                $val 0;
                                $switch 1;
                                LB_LBSID_logging($id,"Off found $val $pos",8);
                                break;
                                }}
                                if(
                                $switch != 1){
                                foreach(
                                $jsonArray['slots'] as $slots ){
                                if(
                                in_array(strtolower(trim($slots['slotName'])),$valueArray)){
                                $switch 0;
                                $val $slots['value']['value'];
                                LB_LBSID_logging($id,"val found $val ",8);
                                break;
                                }}}
                                if(
                                $ent != ''){LB_LBSID_logging($id,"Snips IntentName found $ent ",8);}
                                if(
                                $loc != ''){LB_LBSID_logging($id,"Slot Name Device found $loc ",8);}else{LB_LBSID_logging($id,"Slot Name Device not found",8);}
                                if(
                                $val != ''){LB_LBSID_logging($id,"Slot Name Value found $val ",8);}else{LB_LBSID_logging($id,"Slot Name Value not found",8);}
                                if(
                                $pos != ''){LB_LBSID_logging($id,"Slot Name Device Key found $pos,8);}else{LB_LBSID_logging($id,"Slot Name Device not in array",8);}
                                }
                                if(isset(
                                $val) && $pos != ''){
                                LB_LBSID_logging($id,"switch $switch"$E[9]['value'],1); /// E9=Multiplikator
                                if($E[9]['value'] != '' && $switch == 0){
                                $val round(($val*$E[9]['value']),0);
                                LB_LBSID_logging($id,"Multiplikator erkannt ".$E[9]['value']." Neuer Wert $val,8);
                                }
                                logic_setOutput($id,$pos$val);
                                LB_LBSID_logging($id,"Ausgang $pos auf $val gesetzt" ,8);
                                }}else{
                                LB_LBSID_logging($id,"Snips IntentName not found",8);
                                }}else{
                                if(
                                phpversion() < 5.5){
                                LB_LBSID_logging($id,"incorrect JSON string " ,3);
                                }else {
                                LB_LBSID_logging($id,"incorrect JSON string - ".json_last_error_msg() ,3);
                                }}}
                                if (
                                $E[8]['refresh'] == 1) {
                                // loop through all devices
                                $SLOT_EXPORT_DEVICE "";
                                for (
                                $i 10$i 20$i++) {
                                if(
                                $E[$i]['value'] != ''){
                                $SLOT_EXPORT_DEVICE .= $E[$i]['value']."\n";
                                }}
                                logic_setOutput($id,1,$SLOT_EXPORT_DEVICE);
                                $SLOT_EXPORT_ON_OFF "";
                                $ONsynonyms explode(",",$E[6]['value']);
                                for (
                                $k 0$k count($ONsynonyms); $k++) {
                                if (
                                trim($ONsynonyms[$k]) != "") {
                                $SLOT_EXPORT_ON_OFF .= trim($ONsynonyms[$k]);
                                if (
                                $k count($ONsynonyms)-1$SLOT_EXPORT_ON_OFF .= ",";
                                }}
                                if (
                                $SLOT_EXPORT_ON_OFF != ""$SLOT_EXPORT_ON_OFF .= "\n";
                                $OFFsynonyms explode(",",$E[7]['value']);
                                for (
                                $k 0$k count($OFFsynonyms); $k++) {
                                if (
                                trim($OFFsynonyms[$k]) != "") {
                                $SLOT_EXPORT_ON_OFF .= trim($OFFsynonyms[$k]);
                                if (
                                $k count($OFFsynonyms)-1$SLOT_EXPORT_ON_OFF .= ",";
                                }}
                                logic_setOutput($id,2,$SLOT_EXPORT_ON_OFF);
                                }}}

                                function 
                                LB_LBSID_logging($id$msg$priority$var NULL){
                                $E getLogicEingangDataAll($id);
                                $logLevel getLogicElementVar($id103);
                                if (
                                is_int($priority) && $priority <= $logLevel && $priority 0) {
                                $logLevelNames = array(
                                'none',
                                'emerg',
                                'alert',
                                'crit',
                                'err',
                                'warning',
                                'notice',
                                'info',
                                'debug'
                                );
                                $version getLogicElementVar($id100);
                                $lbsNo getLogicElementVar($id101);
                                $logName getLogicElementVar($id102) . "-LBS$lbsNo";
                                $logName preg_replace('/ /''_'$logName);
                                if (
                                logic_getVar($id104))
                                $logName .= "-$id";
                                if (
                                logic_getVar($id105) == 1)
                                //$msg .= " ($id)";
                                strpos($_SERVER['SCRIPT_NAME'], $lbsNo) ? $scriptname 'EXE' $lbsNo $scriptname 'LBS' $lbsNo;
                                writeToCustomLog($logNamestr_pad($logLevelNames[$logLevel], 7), $scriptname " [v$version]:\t" $msg);
                                if (isset(
                                $var)) {
                                writeToCustomLog($logNamestr_pad($logLevelNames[$logLevel], 7), $scriptname " [v$version]:\t================ ARRAY/OBJECT START ================");
                                writeToCustomLog($logNamestr_pad($logLevelNames[$logLevel], 7), $scriptname " [v$version]:\t" json_encode($var));
                                writeToCustomLog($logNamestr_pad($logLevelNames[$logLevel], 7), $scriptname " [v$version]:\t================ ARRAY/OBJECT END ================");
                                }}}
                                ?>
                                ###[/LBS]###

                                ###[EXEC]###
                                <?
                                // nothing to do
                                ?>
                                ###[/EXEC]###

                                Kann mir hier jemand auf die Sprünge helfen, warum und wo es hakt in diesem LBS?

                                Kommentar

                                Lädt...
                                X