Mycroft-core: Mycroft ohne Zuhause nutzen

Erstellt am 4. Mai 2018  ·  17Kommentare  ·  Quelle: MycroftAI/mycroft-core

Ich möchte mycroft nutzen, ohne dass Home (mycroft-Konto) meinen eigenen Google STT-API-Schlüssel eingerichtet hat. Ich finde keine genaue Beschreibung dazu. Ich kann es laut Kurzbeschreibung nicht tun: https://github.com/MycroftAI/mycroft-core#using-mycroft-ohne-home .

Bitte, wo finde ich eine Anleitung dafür?

Vielen Dank.

Hilfreichster Kommentar

Okay, danke für die Antwort.

Als ich einen Code sah, fand ich den Weg, einige nützliche Dinge einzurichten. Ich füge sie hier für die anderen ein. Ich würde empfehlen, sie in die Dokumentation aufzunehmen.

Einige Modifikationen der lokalen Konfiguration /home/mycroft/.mycroft/mycroft.conf

  • um einen benutzerdefinierten Google Cloud Speech API-Schlüssel zu verwenden (geben Sie Ihre eigenen Anmeldeinformationen JSON ein):

~json..."stt": {"module": "google_cloud","google_cloud": {"Berechtigungsnachweis": {"json": {}}}},...~

  • um google tts anstelle des mycroft mimic Pakets zu verwenden:
    ~json..."tts": {"modul": "google","Google": {"lang": "de-uns","langsam": falsch}},...~

  • um espeak tts anstelle des mycroft mimic Pakets zu verwenden:

    • (vergessen Sie nicht, zuerst das espeak-Paket zu installieren)
      ~json..."tts": {"modul": "espeak","espeak": {"lang": "de"}},...~

Alle 17 Kommentare

Ich weiß nicht, wie man die Abhängigkeit von api.mycroft.ai deaktiviert.

1) Ich habe einen benutzerdefinierten google_cloud stt-API-Schlüssel festgelegt.

2) Ich setze "server.update": false in /home/mycroft/.mycroft/mycroft.conf

Aber ich habe immer noch diese Zeilen im Log:

~14:48:28.473 - request.packages.urllib3.connectionpool - DEBUG - Zurücksetzen der unterbrochenen Verbindung: api.mycroft.ai14:48:29.084 - request.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai :443 "GET /v1/device HTTP/1.1" 401 3814:48:29.104 - request.packages.urllib3.connectionpool - DEBUG - Neue HTTPS-Verbindung starten (1): api.mycroft.ai14:48:29.645 - request.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai :443 "GET /v1/auth/token HTTP/1.1" 401 38~

Wieso den?

Leider fand ich die Mycroft-Dokumentation für fortgeschrittene Spieler sehr unvollständig. Es wird benötigt, um den Quellcode auf eine bestimmte Konfiguration zu überprüfen.

  • Es heißt: "Sie können mycroft ohne Zuhause verwenden.", aber es wird keine Beispielkonfiguration bereitgestellt.
  • Es ist traurig: "Sie können Ihren eigenen Google API-Schlüssel verwenden." aber dafür wird keine Beispielkonfiguration bereitgestellt.

Es ist ein sehr interessantes Projekt und ich mag es, aber VERBESSERE DIE DOKUMENTATION , bitte.

Hallo @Josca, wir arbeiten kontinuierlich an der Dokumentation, aber wie Sie sehen, gibt es Lücken.

Wenn google_cloud stt richtig eingerichtet ist, sollten Sie in der Lage sein, mit mycroft zu sprechen und nach Dingen wie der Uhrzeit zu fragen.

Sie sollten den Pairing-Skill und den Konfigurations-Skill in der Konfiguration auf die schwarze Liste setzen, indem Sie einen Eintrag hinzufügen:

"skills" {
   "blacklisted_skills": ["skill-media", "send_sms", "skill-wolfram-alpha", "skill-pairing", "skill-configuration"]
}

Möglicherweise sehen Sie immer noch fehlgeschlagene Verbindungen zu Mycroft-Servern aufgrund von Dingen wie Skill-Einstellungen. Diese respektieren meiner Meinung nach den Update-Wert noch nicht.

Okay, danke für die Antwort.

Als ich einen Code sah, fand ich den Weg, einige nützliche Dinge einzurichten. Ich füge sie hier für die anderen ein. Ich würde empfehlen, sie in die Dokumentation aufzunehmen.

Einige Modifikationen der lokalen Konfiguration /home/mycroft/.mycroft/mycroft.conf

  • um einen benutzerdefinierten Google Cloud Speech API-Schlüssel zu verwenden (geben Sie Ihre eigenen Anmeldeinformationen JSON ein):

~json..."stt": {"module": "google_cloud","google_cloud": {"Berechtigungsnachweis": {"json": {}}}},...~

  • um google tts anstelle des mycroft mimic Pakets zu verwenden:
    ~json..."tts": {"modul": "google","Google": {"lang": "de-uns","langsam": falsch}},...~

  • um espeak tts anstelle des mycroft mimic Pakets zu verwenden:

    • (vergessen Sie nicht, zuerst das espeak-Paket zu installieren)
      ~json..."tts": {"modul": "espeak","espeak": {"lang": "de"}},...~

ping @KathyReid

Funktioniert Google TTS lokal? Müssen wir dafür ein Paket installieren?

Google TTS funktioniert nicht lokal, es ist ein Remote-Dienst. (Aber dafür brauchst du die mycroft-Server nicht)

@YogeshSingla , Google TTS ist ein entfernter, aber kostenloser Dienst. Sie brauchen auch keine Registrierung. Aber ich denke, es ist nicht garantiert, dass dieser Dienst funktioniert. Es wird mit dem Python gTTS- Paket implementiert. Es scheint nicht von Google selbst unterstützt zu werden.

Ich empfehle espeak als einfache und lokale Lösung. Seine Qualität ist nicht groß, aber zuverlässig.

Sie müssen zuerst das Paket espeak installieren, um es zu verwenden:
~sudo apt-get installiere espeak~

Nur neugierig, warum sollten Sie espeak für lokale tts anstelle von Mimic verwenden, das auch lokal läuft? Mir fallen kostenlose Gründe ein, ich frage mich ehrlich gesagt nur deine.

Ich interessiere mich auch für die Gründe, Home zu meiden. Auch hier fallen mir einige ein, würde aber gerne Ihre Gedanken wissen, wenn Sie bereit wären, sie zu teilen.

@penrods

Ich weiß, dass Espeak im Vergleich zu Mimic, Google TTS und anderen eine ziemlich niedrige Qualität hat, aber es auch
hat viele Vorteile:

  1. Mimik erfordert einen langen Build. Ich habe keine einfache Anleitung gefunden, wie man Mimic als vorkompiliertes Paket installiert. Wenn ich mycroft-core einrichte, skip mimic ( bash dev_setup.sh -sm ).
    Espeak ist ein Standardpaket von Debian, daher ist es sehr einfach zu installieren und zu verwenden.

  2. Espeak unterstützt viele Sprachen einschließlich meiner Muttersprache Tschechisch. Ich habe in den Dokumenten von Mimic keine Liste der unterstützten Sprachen gesehen. Ich denke, es ist stark auf Englisch ausgerichtet (aus verständlichen Gründen).

  3. Espeak hat eine sehr schnelle Reaktion, was besonders während der Entwicklungsphase sehr hilfreich ist. Mimics hat es vielleicht so, hat es aber nicht getestet.

  4. Aus diesen Gründen fand ich es als beste Lösung für Entwicklungszwecke.

picotts ist ähnlich schnell, hat aber meines Wissens eine bessere Ausgabequalität (weiß nicht in Tschechisch) - Ich weiß nicht, ob es derzeit mit Mycroft out-of-the-box verwendet werden kann.

Ich bin auch daran interessiert, ein unabhängiges Mycroft zu haben, das nicht auf eine Internetverbindung angewiesen ist, um zu funktionieren.

Eines unserer Ziele hier ist es, möglichst viel davon „lokal“ zu bewegen, aber insgesamt wollen wir alle Sprachen unterstützen. In der Zwischenzeit streben wir auch nach einem brauchbaren Assistenten, nicht nur nach einem Spielzeug. Im Moment haben wir uns daher für die Nutzung einiger Cloud-Dienste entschieden, während wir unabhängig und mit Partnern zusammengearbeitet haben, um die Technologie aufzubauen, die für einen vollständigen Offline-Betrieb erforderlich ist.

In der Zwischenzeit werden wir die Entwicklungsressourcen also nicht darauf konzentrieren, die unbestreitbar schlechteren Benutzererfahrungen mit TTS-Engines der älteren Generation zu unterstützen. Sie sind _absolut_ willkommen, PRs einzureichen, wenn Sie dies sehen möchten, aber das Kernteam konzentriert sich auf den Aufbau offener Technologien wie DeepSpeech und Mimic/Mimic2, anstatt in der Leistung einen Rückschritt zu machen und auch Technologiegassen zu verlassen, die keine haben guter Weg, um andere Sprachen zu unterstützen.

Wenn Sie einige Änderungen an den dev_setup.sh-Skripten oder -Dokumenten vornehmen möchten, um alternative TTS-Engines zu unterstützen, ziehe ich sie gerne ein. Aber ich sehe das nicht wirklich als Fortschritt im Allgemeinen.

Ich hoffe, das klingt nicht abwertend, wir sind nur begrenzt in unserer Zeit und müssen uns entscheiden, was wir anpacken.

@penrods Dies war keine Funktionsanfrage zum Hinzufügen von Picotts, sondern nur ein Tipp für den oben genannten Benutzer und andere, die es vielleicht wissen möchten. Der Feature Request hier dient dazu, die Offline-Nutzung zu ermöglichen (was ich verstehen würde, wenn es nicht im Interesse einer Firma wäre, die irgendwie ihren Lebensunterhalt verdienen muss).

Völlig verstehen, nur erklären, warum wir nicht auf die Unterstützung von Picotts und dergleichen springen! Ich denke, Mimik ist heute als Offline-TTS-Engine vollkommen praktikabel (ja, das Erstellen dauert eine Weile, das ist einmalig). Wir arbeiten an mehreren anderen Dingen für "offline" STT - wirklich eher an einem "persönlichen Cloud"-Ansatz in naher Zukunft.

Es tut mir leid, es zu hören. Aktuell arbeite ich an einer Cloudless Smart Home Lösung. Standardmäßig verbindet es sich in keiner Weise mit der Cloud.

Ich überlege, ob MyCroft eine gute Lösung für die Sprachsteuerung sein könnte. Aber wenn eine Installation eine Cloud-Verbindung haben muss, kann ich sie nicht verwenden.

Für mein Zielpublikum ist die Beschränkung, nur Englisch zu sprechen, ein akzeptabler Kompromiss, zumindest bis Edge-Hardware für maschinelles Lernen alltäglich wird.

Mir ist auch aufgefallen, dass MyCroft tatsächlich eine Version der Tacotron TTS-Engine gebaut hat? Hat es keine akzeptablen Ergebnisse geliefert?
https://github.com/MycroftAI/mimic2

Es gibt einige Fortschritte, da gibt es das persönliche Backend- Projekt. Dieses Projekt ist jedoch immer noch sehr WIP und wie oben für STT angegeben, müssen Sie so etwas wie das deepspeech_server-Backend mit einer lokalen Instanz von deepspeech verwenden, die auf einer leistungsstarken Maschine im lokalen Netzwerk ausgeführt wird.

Inzwischen ist das Selene-Backend (der Software-Stack hinter home.mycroft.ai) der Öffentlichkeit zugänglich gemacht worden.

Da ich denke, dass die meisten, wenn nicht alle Konfigurationen hier von der Dokumentation abgedeckt sind und Selene veröffentlicht wurde, schließe ich dieses Thema.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen