Voice assistant local

Panowie, od kilku dni bawię się voice assistantem, szukałem na tym forum, ale nie widzę “świeżych” postów. Nie chodzi o sprzęt tylko o agenta konwersacji. Chodzi mi o tryb Local, gdzie agentem konwersacji jest Home Assistant - język PL (co wyklucza “obce” fora. W pierwszej kolejności próbowałem OpenAi jako agenta, działało OK, ale dla mnie za bardzo gadatliwy. Do tego jak dobrze rozumie działanie VA, przy korzystaniu z zewnętrznego agenta konwersacji, nie działają custom_sentences. Na Github są dziesiątki sentencji - czy to jedyna droga aby było OK? Chciałbym się Was podpytać o doświadczenia przy takiej konfiguracji. Czy warto brnąć w takie rozwiazanie?

A powiedz jeszcze czego oczekujesz od asystenta? Ma wykonywać proste polecenia czy chcesz bazować na AI?

Tak jak pisałem wyżej, lokalny bez AI. Proste polecenia, ale wydawane naturalnie.

Ja używam płatnego asystenta od nabu casy naprzemiennie z darmowym Gemini. Jeśli chodzi o proste polecenia to wszystko zależy od tego jak masz opisane aliasy encji dla asystenta lub ewentualnie stworzone automatyzacje do zdań które są bardziej wymagające.

OK, poczekałem kilka dni, cóż czuje się lekko zawiedzony brakiem postów. Ale rozumie, bo temat nie jest lekki aby nie powiedzieć “słaby”. Nie chcę aby ten wątek przeszedł bez echa do historii. Dalej będę próbował i testował, będę się dzielił moimi doświadczeniami. Może jeszcze nie dzisiaj, bo mało miałem czasu, ale będę - obiecuje, przynajmniej dopóki sam się nie zniechęcę. Na koniec kilka zdan wyjaśnienia, dlaczego drążę temat. Z góry założyłem, że nie chce rozmawiać z AI i dopytywać o coś interesującego czy o wiadomości. Oczywiście, próbowałem zaprząc AI jako asystenta, ale to raczej była tylko ciekawość, bo plan był od początku inny. Zresztą można się zniechęcić do AI słysząc: “nie mogę zapalić światła nad stołem, ale zapaliłam światło w łazience” :). Sterowanie głosem z lokalnym asystentem, to w/g mnie wartość dodana o wątpliwej wartości. Jak siedzę i mam telefon przy sobie, to równie szybko włączę światło telefonem co wypowiadając określone zdanie. Ale są sytuacje, gdzie wydanie komendy głosem ma sens - np. gdy wchodzisz do pokoju i masz zajęte ręce talerzami z gorącą zupą, czy dodając coś do listy zakupów. Myślę, że jest więcej sytuacji, gdzie wydanie komendy jest prostsze niż używanie tradycyjnych manipulatorów (telefon, minutnik, długopis, pilot). Jedną odkryłem dosyć szybko - zmiana programów w TV. Łatwiej powiedzieć: “OK Nabu, zmień program na Eurosport 1” niż klikać P+ aż do skutku, czy pamiętać wszystkie numery programów. To może tyle wstępu, będę pisał, może kogoś zachęcę do prób z “local voice assistant PL”.

Ja polecam Gemini model 2.5 flash lite podepnij kartę limity się zwiększa a zapłacisz grosze. Z tego co też czytam to ludzie polecają Cloud. A jeśli chodzi o modele lokalne to raczej Ollama z modelem llama 13b ale do tego już trzeba dobry sprzęt. A jeśli chodzi o agenta konwersacji home assistant to według mnie szkoda kombinować. jeśli masz jeszcze jakieś pytania służę pomocą.

Nie wiem czy któryś z projektówlocal działa, darmowe już chyba nie jest rozwijane. Więc pozostaje NABU z ich Nabu Casa NC-VK-9727 lub bez.

https://forum.level1techs.com/t/home-assistant-exploration-of-fully-local-voice-assist/229801

Modele w pełni lokalne są rozwijane i to bardzo dobrze. Jak bym miał używać lokalnych to kupił bym jakiś serwer z używek i postawił na nim Ollame, Whisper i Piper tylko jeśli ktoś ma takie zamiary to polecam złożyć serwer z GPU.

Tak na prawdę, zamianę mowy na text mam w chmurze (Google), bo mój HP T630, jest po prostu za wolny. Whisper, też ie jest najlepszym STT. Ale cały czas pisze o agencie konwersacji. Podczas moich testów z AI nie mogłem sobie poradzić z panowaniem nad tym co robi AI. Np. mam TV z możliwością nagrywania na żywo (PVR). Można zrobić pause przy Live TV, przy agencie AI nie udawało mi się zatrzymywanie, bo uparcie twierdziła, że TV nic nie odtwarza, więc nie można zatrzymać. Może jest na to sposób, ale mój zamysł jest inny i będę dalej to wdrażał. Ale to co piszą koledzy potwierdza fakt, że narzędzie jest słabe i mało popularne.

Tak nie za bardzo wiem czego oczekujesz od tego asystenta. Z jednej strony mówisz że nie chcesz rozmawiać z asystentem tylko ma wykonywać proste czynności a z drugiej cały czas piszesz o silniku z AI. Pamiętaj że to jest HA i jak będzie działał twój asystent to w głównej mierze zależy od ciebie. Chcesz żeby wykonał twoje polecenia to niestety ale musisz sam sobie napisać te automatyzacje. Nie sądzę żebyś znalazł albo wyszkolił jakiegoś asystenta na tyle żeby zrobił wszystkie twoje polecenia od strzała czyli tak że nie przygotujesz mu odpowiedniej bazy a on sam będzie interpretował co chcesz zrobić. Używam od początku asystenta Nabu Casy i to co chciałem żeby robił mam rozpisane ręcznie, zacząłem korzystać z modelu AI Gemini żeby robił na przykład łączone zadania ale dla mnie bardziej zadowalający rezultat daje automatyzacja wykonywana przez NB w 0.5s niż ta sama komenda zostawiona do przeanalizowania przez AI która zajmuje 2-3s. Niby to nie wyścigi ale zbyt mądry asystent też stwarza problemy. Takie jest moje zdanie na ten temat :person_shrugging:

Myślę, że @Krzysztof_M może w tym temacie coś powiedzieć, jak to aktualnie może wyglądać.
Tani asystent głosowy na bazie Voice Assistant PE od HA - Urządzenia / ESPHome - ArturHome

Dodam od siebie, że jeszcze na początku roku 2024 były ambitne plany stworzenia lokalnego, polskiego asystenta w firmie Sviete - projekt AI-Speaker bazującym na Home Assistant (początki 2020r). Już wtedy można było korzystać z poleceń głosowych (lokalnie) i działa/ło to tak jak sobie wyobraża @Romek_Z.
Tu można zobaczyć jak to wyglądało już 5 lat temu (zanim świat usłyszał o AI):
ai-speaker - YouTube
Niestety projekt upadł, nie ma już oficjalnej dokumentacji na ich stronie. Są jeszcze repozytoria na GitHub:
sviete repositories · GitHub

EDIT:
I tak jak piszą koledzy, uruchomienie własnych (lokalnych) modeli AI wymaga sporych zasobów sprzętowych, które potrzebują stosunkowo dużej ilości energii, bo muszą działać 24/7 jako usługa serwerowa. W związku z tym sensu ekonomicznego raczej to nie będzie nigdy miało, przy tym zastosowaniu.

No nie wiem jak masz dobry sprzęt z GPU to agent będzie w pełni lokalnie ja na razie nie mam takiego sprzętu więc korzystam z Gemini TTS i STT oraz agenta konwersacji 2.5 flash lite do tego dobry PROMPT używanie kosztuje grosze

Stawianie nowego sprzętu po to żeby odpalić złożone komendy do sterowania domem trochę mija się z celem, chyba że ktoś używa AI do wyższych celów. Do prostych zadań proste komendy a resztę dopisać w skrypcie/automatyzacji.

Dziś grosze, jutro już nie, widać że inwestorzy AI chyba się wkurzyli bo AI wpychane jest gdzie się da, minusowe słupki wyszły już chyba poza skalę.

Co do tej całej bańki AI to kiedyś pęknie teraz zadłużają się nagle bańka pęknie i będą mieli problemy. Jak z każdą bańką. Ja akurat jestem zwolennikiem AI i myślę nad takim własnym serwerem

Trochę temat nam zbacza na AI. Powiem tak, nie uciekniemy od AI, ale ja staram się uciec od wszelkich abonamentów. Jeden z powodów mojego wyboru, Local Voice Assistant. Chce mieć to również pod lepszą kontrolą i bardziej dla siebie. Interesuje mnie również samo rozwiązywanie problemu. Dam taki przykład: zwiększenie głośności TV. Komenda “ustaw TV na 10” działa i ustawia. Można też pogłośnić/ściszyć o ±1. Ale ja bym chciał aby na komendę: “OK. Nabu. TV głośniej” zrobił o +1 i czekał, powiem “jeszcze” i znowu zrobi +1, aż powiem “OK”. Mamy urządzenia z elastyczną konfiguracją (ESPHome), więc na mój gust nic nie stoi na przeszkodzie aby tak zrobić.

1 polubienie

wdług mnie to jest w twoim przypadku najlepsza opcja: W ustawieniach agenta zaznacz opcję ‘Preferuj lokalną obsługę poleceń’. Działa to tak:

  1. Lokalny Assist: Najpierw HA sprawdza Twoje custom_sentences. Jeśli masz tam dopasowanie, wykona komendę błyskawicznie i lokalnie.
  2. Gemini: Jeśli Assist nie zrozumie intencji, dopiero wtedy wysyła zapytanie do Gemini.

To idealny kompromis – masz pełne sterowanie po polsku przez własne sentencje, a Gemini służy tylko jako mózg do trudniejszych pytań. Żeby nie był zbyt gadatliwy, dopisz mu w instrukcjach systemowych: ‘Odpowiadaj krótko i konkretnie max. dwa zdania’.

A dalej snując plany, to mając lokalnie całego voice Assistant, to po co komu “Wake word”? Słowo klucz zabezpiecza nas przez przesyłaniem w chmurę wszystkiego co się mówi. To taka pozostałość po Alexa i Google. Jak wiemy, że to wszystko zostaje u nas, to niech słucha i wykonuje polecenia. Widzę ogromne możliwości :slight_smile: Ale zacznę mniej ambitniej.

Bo wake word uruchamia silnik a nie wysyła twoje dane do chmury…

No to nie jest tak, moc obliczeniowa takiego MCU przekracza już możliwości komputerów osobistych z lat 80’ zeszłego wieku, ale do przeciętnych komputerów z lat 90’ (kiedy pojawiły się pierwsze multimedia) to jeszcze trochę. Jak na razie takie konstrukcje są w stanie realizować funkcję zewnętrznego mikrofonu, który rozpoznaje słowo kluczowe w celu aktywacji, reszta się dzieje na znacznie mocniejszym sprzęcie (a przynajmniej taki musi być, więc terminale wyjęte ze śmietnika niespecjalnie się nadają).

By były przetwarzane lokalnie tylko te rzeczy, które potrzebujesz, z pewnością wolisz przykładowo średni pobór mocy rzędu 10W niż 60W dla dostatecznie mocnego sprzętu który nie będzie w idle przez większość czasu.

1 polubienie

100% racji - ale czas leci szybko a technika jeszcze szybciej, więc miejmy umysły otwarte. NIespełna 30 lat temu na biurku miałem temat urządzenia, które by słuchało kierowcy w czasie jazdy autem i włączało światła, kierunkowskazy na komendę głosową. Pomoc dla osób na wózkach, którzy mieli ręce zajęte kierownicą, sterowaniem “gazem” , hamulcem i jeszcze zmianą biegów ( automaty były słabo dostępne) . Temat wtedy porzucony, ale przecież do zrobienia później. A może zamiast myśleć ile kosztuje 100-200W energii zużywanej przez serwer, trzeba mu tą energie dostarczyć całkowicie niezależnie od tego za co płacimy.
“Patrz tam, gdzie wzrok nie sięga”.