Hlasové ovládání HA v češtině STT - řeč na text
-
- Moderátor
- Příspěvky: 905
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 108 poděkování
- Dostal poděkování: 210 poděkování
Hlasové ovládání HA v češtině STT - řeč na text
Udělám si tu prozatím jen pár poznámek.
https://www.home-assistant.io/integrations/stt/
https://www.home-assistant.io/blog/2019 ... stant/#ada (a v diskuzi také zajímavé odkazy)
Home Assistant - Almond, Ada
Zjednodušeně - Almond zpracovává text (tedy takové ty "Jaké je počasí") a text mu dodává Ada na základě hlasového vstupu, pro jehož převod používá služby Microsoftu. MS Speech to text češtinu umí, stejně jako spoustu jiných jazyků. Níže odkaz na online demo.
Z ADA by tedy mohl vypadnout český text. Takže české hlasové ovládání HA by mělo být možné.
Napadají mne
- mezi Ada a Almond vložit online překladač (univerzální řešení pro všechny jazyky podporované MS STT, záleží na kvalitě překladače)
- Fork Almondu pro češtinu
- náhrada Almondu něčím malým vlastním (základní parsování vět typu zhasni nebo zvyš teplotu by mohlo být jednoduché)
- náhrada Almondu něčím z cognitive-services MS
Rozpoznávání češtiny - online dema
Jen perlička - můj HA má název HAgrid, oslovení Hagride MS rozpozná jinak než Google.
Microsoft - https://azure.microsoft.com/cs-cz/servi ... /#overview
Služba využívající Google - https://www.speechtexter.com/
Microsoft - Azure - https://azure.microsoft.com/cs-cz/servi ... -services/
Google cloud - https://cloud.google.com/speech-to-text/docs/languages
Mozilla, deepspeech (Lokální, tensor flow, open source)
Tady se dá pomoci s trénováním češtiny - https://commonvoice.mozilla.org/cs
https://research.mozilla.org/machine-learning/
https://hacks.mozilla.org/2019/12/deeps ... xt-engine/
https://deepspeech.readthedocs.io/en/r0.9/
Něco dalšího TTS/STT offline, nicméně pro HA asi nepoužitelné.
https://www.newtontech.net/cs/newton-dictate/
https://www.speechtech.cz/speechtech-te ... aterina210
https://www.home-assistant.io/integrations/stt/
https://www.home-assistant.io/blog/2019 ... stant/#ada (a v diskuzi také zajímavé odkazy)
Home Assistant - Almond, Ada
Zjednodušeně - Almond zpracovává text (tedy takové ty "Jaké je počasí") a text mu dodává Ada na základě hlasového vstupu, pro jehož převod používá služby Microsoftu. MS Speech to text češtinu umí, stejně jako spoustu jiných jazyků. Níže odkaz na online demo.
Z ADA by tedy mohl vypadnout český text. Takže české hlasové ovládání HA by mělo být možné.
Napadají mne
- mezi Ada a Almond vložit online překladač (univerzální řešení pro všechny jazyky podporované MS STT, záleží na kvalitě překladače)
- Fork Almondu pro češtinu
- náhrada Almondu něčím malým vlastním (základní parsování vět typu zhasni nebo zvyš teplotu by mohlo být jednoduché)
- náhrada Almondu něčím z cognitive-services MS
Rozpoznávání češtiny - online dema
Jen perlička - můj HA má název HAgrid, oslovení Hagride MS rozpozná jinak než Google.
Microsoft - https://azure.microsoft.com/cs-cz/servi ... /#overview
Služba využívající Google - https://www.speechtexter.com/
Microsoft - Azure - https://azure.microsoft.com/cs-cz/servi ... -services/
Google cloud - https://cloud.google.com/speech-to-text/docs/languages
Mozilla, deepspeech (Lokální, tensor flow, open source)
Tady se dá pomoci s trénováním češtiny - https://commonvoice.mozilla.org/cs
https://research.mozilla.org/machine-learning/
https://hacks.mozilla.org/2019/12/deeps ... xt-engine/
https://deepspeech.readthedocs.io/en/r0.9/
Něco dalšího TTS/STT offline, nicméně pro HA asi nepoužitelné.
https://www.newtontech.net/cs/newton-dictate/
https://www.speechtech.cz/speechtech-te ... aterina210
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Moderátor
- Příspěvky: 905
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 108 poděkování
- Dostal poděkování: 210 poděkování
Re: Hlasové ovládání HA v češtině STT - řeč na text
MS Lab je na hodinu. Na lokálu trvale.
K dispozici ukázka v C#, nebo Python, který jsem zkusil.
Stačí mít nainstalované Visual Studio Code, Python, free účet na Azure.
Přepis hlasu na text, rozpoznání "What time is it?", hlasová odpověď. Zatím v angličtině, jdu zkusit jak to půjde česky.
Vytváření aplikací s podporou řeči pomocí služby Speech: https://docs.microsoft.com/cs-cz/learn/ ... nput-text/
Dokumentace: https://docs.microsoft.com/cs-cz/azure/ ... h-service/
K dispozici ukázka v C#, nebo Python, který jsem zkusil.
Stačí mít nainstalované Visual Studio Code, Python, free účet na Azure.
Kód: Vybrat vše
pip install azure-cognitiveservices-speech
Vytváření aplikací s podporou řeči pomocí služby Speech: https://docs.microsoft.com/cs-cz/learn/ ... nput-text/
Dokumentace: https://docs.microsoft.com/cs-cz/azure/ ... h-service/
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Moderátor
- Příspěvky: 905
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 108 poděkování
- Dostal poděkování: 210 poděkování
Re: Hlasové ovládání HA v češtině STT - řeč na text
První krůček se mi myslím povedl -
[spoiler=kód]
Originál MS je na GITu - https://github.com/MicrosoftLearning/AI-102-AIEngineer
Tohle je jen úprava pár řádků
.env
a speaking-clockcz.py
[/spoiler]
Vzhledem k tomu že na Azure je zdarma 5 hodin mluvení měsíčně tak potřebuji předřadit rozpoznávání klíčového slova po kterém se teprve bude volat služba. A ne abych na cloudu visel 24/7
K tomu nějaký návod mám - https://www.youtube.com/watch?v=re-dSV_a0tM
Na začátek mi bude stačit pár frází, ale určitě bude nutné časem přistoupit k nějakému zpracování typu odhad entita/činnost, tedy to co dělá v originále "Almond".
[spoiler=kód]
Originál MS je na GITu - https://github.com/MicrosoftLearning/AI-102-AIEngineer
Tohle je jen úprava pár řádků
.env
Kód: Vybrat vše
COG_SERVICE_KEY=azure_jeden_z_klicu
COG_SERVICE_REGION=westeurope
Kód: Vybrat vše
from dotenv import load_dotenv
from datetime import datetime
import os
# Import namespaces
import azure.cognitiveservices.speech as speech_sdk
# from playsound import playsound
def main():
try:
global speech_config
# Get Configuration Settings
load_dotenv()
cog_key = os.getenv('COG_SERVICE_KEY')
cog_region = os.getenv('COG_SERVICE_REGION')
# Configure speech service
speech_config = speech_sdk.SpeechConfig(cog_key, cog_region)
print('Připraven na použití hlasových služeb v:', speech_config.region)
# Get spoken input
command = TranscribeCommand()
if command.lower() == 'kolik je hodin?':
TellTime()
if command.lower() == 'zhasni světlo.':
ZhasniSvetlo()
except Exception as ex:
print(ex)
def TranscribeCommand():
command = ''
# Configure speech recognition
audio_config = speech_sdk.AudioConfig(use_default_microphone=True)
speech_recognizer = speech_sdk.SpeechRecognizer(speech_config, audio_config, language="cs-CZ")
print('Teď mluv...')
# Configure speech recognition
# audioFile = 'time.wav'
# playsound(audioFile)
# audio_config = speech_sdk.AudioConfig(filename=audioFile)
# speech_recognizer = speech_sdk.SpeechRecognizer(speech_config, audio_config)
# Process speech input
speech = speech_recognizer.recognize_once_async().get()
if speech.reason == speech_sdk.ResultReason.RecognizedSpeech:
command = speech.text
print(command)
else:
print(speech.reason)
if speech.reason == speech_sdk.ResultReason.Canceled:
cancellation = speech.cancellation_details
print(cancellation.reason)
print(cancellation.error_details)
# Return the command
return command
def TellTime():
now = datetime.now()
response_text = 'Je právě {}:{:02d}'.format(now.hour,now.minute)
# Configure speech synthesis
# speech_config.speech_synthesis_voice_name = "en-GB-RyanNeural"
# speech_synthesizer = speech_sdk.SpeechSynthesizer(speech_config)
# speech_config.speech_synthesis_voice_name = 'en-GB-LibbyNeural' # change this
speech_config.speech_synthesis_voice_name = 'cs-CZ-VlastaNeural' # cs-CZ-AntoninNeural
speech_synthesizer = speech_sdk.SpeechSynthesizer(speech_config)
# Synthesize spoken output
# speak = speech_synthesizer.speak_text_async(response_text).get()
# if speak.reason != speech_sdk.ResultReason.SynthesizingAudioCompleted:
# print(speak.reason)
responseSsml = " \
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='cs-CZ'> \
<voice name='cs-CZ-VlastaNeural'> \
{} \
<break strength='weak'/> \
Tak to snad funguje! \
</voice> \
</speak>".format(response_text)
speak = speech_synthesizer.speak_ssml_async(responseSsml).get()
if speak.reason != speech_sdk.ResultReason.SynthesizingAudioCompleted:
print(speak.reason)
# Print the response
print(response_text)
def ZhasniSvetlo():
response_text = 'Nezhasnu, neviděl bych na práci'
speech_config.speech_synthesis_voice_name = 'cs-CZ-AntoninNeural'
speech_synthesizer = speech_sdk.SpeechSynthesizer(speech_config)
speak = speech_synthesizer.speak_text_async(response_text).get()
if speak.reason != speech_sdk.ResultReason.SynthesizingAudioCompleted:
print(speak.reason)
# Print the response
print(response_text)
if __name__ == "__main__":
main()
Vzhledem k tomu že na Azure je zdarma 5 hodin mluvení měsíčně tak potřebuji předřadit rozpoznávání klíčového slova po kterém se teprve bude volat služba. A ne abych na cloudu visel 24/7
K tomu nějaký návod mám - https://www.youtube.com/watch?v=re-dSV_a0tM
Na začátek mi bude stačit pár frází, ale určitě bude nutné časem přistoupit k nějakému zpracování typu odhad entita/činnost, tedy to co dělá v originále "Almond".
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Začínající autor
- Příspěvky: 39
- Registrován: 06. březen 2022, 06:53
- Dal poděkování: 2 poděkování
-
- Moderátor
- Příspěvky: 905
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 108 poděkování
- Dostal poděkování: 210 poděkování
Re: Hlasové ovládání HA v češtině STT - řeč na text
Tak jak pokračuji?
Zapojení zhruba podle https://www.youtube.com/watch?v=re-dSV_a0tM
1) Zkusil jsem češtinu, WIT ji nepodporuje co se "hlas na text" týče, nicméně pokud dostane text tak jej rozparsuje dobře. Nevadí, to půjde přes Azure.
[spoiler][/spoiler]
Trénovat model je možné online
A chci se podívat i na Mycroft a https://www.youtube.com/watch?v=AWvsXxDtEkU
Trocha teorie a náhledů jak pracovat se zvukem včetně ESP32
https://www.youtube.com/watch?v=ca2GKE4xkvM
https://www.youtube.com/watch?v=YereI6Gn3bM
Do ESP nacpeme i pár hlasových příkazů bez cloudu
A zajímalo by mne jak si poradí s češtinou čínský DSP za pár stovek, takže jsem jej rovnou objednal
Zároveň už mám na stole vývojový modul s ESP32-A1S.
Jako momentálně nejjednodušší cesta se mi jeví použití víceméně hotových věcí.
Natrénovat online probouzecí slovo.
ESP + I2S mikrofon a reproduktor,
Na probouzecí slovo rozpoznané ESP začít snímat zvuk (zkouším)
Zvuk poslat ho do cognitive services na Azure cloudu, vrátí se mi český text.
Mám vyzkoušeno, funguje celkem hezky, kontextově to občas nesedí.
Slova která zaměňuje pravidelně se nicméně dají opravit následně, předtím než je věta poslána k dalšímu zpracování.
Tento český text vzít a poslat ho do něčeho co mi ho rozparsuje na základě naučených pravidel vrátí z běžné věty důležitá slova - entitu a požadavek - tedy třeba světlo, ložnice, off (Zkusil jsem zatím wit.ai , nicméně i ostatní budou mít podobné služby, případně to udělat bez cloudu)
Výsledné příkazy posílat přes mqtt do HomeAssistant (případně jinam - univerzální) - MQTT mám vyzkoušeno na jiných projektech.
a zvukový výstup generovat opět přes Azure (Mám vyzkoušeno). Český mužský neurální hlas je dle mého názoru to nejlepší co jsem kdy slyšel z hlediska záměny s živým člověkem.
No a teď už zbývá "jen" dát to vše dohromady.
Výstupem mojí práce by měl být nějaký kus software, návod a možná i kus hardware.
[spoiler=Do budoucna bych nerad byl závislý na cloudech.]Pokud bude rozumně fungovat čínský DSP (nebude to jen hračka s vysokou chybovostí) tak rozpoznávání půjde lokálně, stejně jako zpracování příkazu. Zvukový výstup přes cloud. Pokud nebude cloud dostupný tak v nouzovém režimu alespoň nějaký základní hlas lokálně.
Na vlastní DSP si zatím netroufám, resp. si to možná dám do plánu na neurčito s nízkou prioritou. I když by to byla pecka. Rodina si vytrénuje asistenta na vlastní hlasy, nevadily by vady řeči, případně by mohl reagovat třeba na pískání nebo klingonštinu.[/spoiler]
[spoiler=A přihodím ještě dva odkazy na kurzy v oblasti umělé inteligence:]https://www.edx.org/course/google-ai-fo ... nsorflowjs
https://aka.ms/30daysAI[/spoiler]
Zapojení zhruba podle https://www.youtube.com/watch?v=re-dSV_a0tM
1) Zkusil jsem češtinu, WIT ji nepodporuje co se "hlas na text" týče, nicméně pokud dostane text tak jej rozparsuje dobře. Nevadí, to půjde přes Azure.
[spoiler]
Kód: Vybrat vše
curl -XPOST -H "Authorization: Bearer CLIENTGENERATEDGFUHJGDFYJDYD" "https://api.wit.ai/speech?v=20220309" -H "Content-Type:audio/wav" --data-binary "@rosvloz.wav"
{
"code": "bad-request",
"error": "Speech recognition is not supported for language: cs"
}
Trénovat model je možné online
A chci se podívat i na Mycroft a https://www.youtube.com/watch?v=AWvsXxDtEkU
Trocha teorie a náhledů jak pracovat se zvukem včetně ESP32
https://www.youtube.com/watch?v=ca2GKE4xkvM
https://www.youtube.com/watch?v=YereI6Gn3bM
Do ESP nacpeme i pár hlasových příkazů bez cloudu
A zajímalo by mne jak si poradí s češtinou čínský DSP za pár stovek, takže jsem jej rovnou objednal
Zároveň už mám na stole vývojový modul s ESP32-A1S.
Jako momentálně nejjednodušší cesta se mi jeví použití víceméně hotových věcí.
Natrénovat online probouzecí slovo.
ESP + I2S mikrofon a reproduktor,
Na probouzecí slovo rozpoznané ESP začít snímat zvuk (zkouším)
Zvuk poslat ho do cognitive services na Azure cloudu, vrátí se mi český text.
Mám vyzkoušeno, funguje celkem hezky, kontextově to občas nesedí.
Slova která zaměňuje pravidelně se nicméně dají opravit následně, předtím než je věta poslána k dalšímu zpracování.
Tento český text vzít a poslat ho do něčeho co mi ho rozparsuje na základě naučených pravidel vrátí z běžné věty důležitá slova - entitu a požadavek - tedy třeba světlo, ložnice, off (Zkusil jsem zatím wit.ai , nicméně i ostatní budou mít podobné služby, případně to udělat bez cloudu)
Výsledné příkazy posílat přes mqtt do HomeAssistant (případně jinam - univerzální) - MQTT mám vyzkoušeno na jiných projektech.
a zvukový výstup generovat opět přes Azure (Mám vyzkoušeno). Český mužský neurální hlas je dle mého názoru to nejlepší co jsem kdy slyšel z hlediska záměny s živým člověkem.
No a teď už zbývá "jen" dát to vše dohromady.
Výstupem mojí práce by měl být nějaký kus software, návod a možná i kus hardware.
[spoiler=Do budoucna bych nerad byl závislý na cloudech.]Pokud bude rozumně fungovat čínský DSP (nebude to jen hračka s vysokou chybovostí) tak rozpoznávání půjde lokálně, stejně jako zpracování příkazu. Zvukový výstup přes cloud. Pokud nebude cloud dostupný tak v nouzovém režimu alespoň nějaký základní hlas lokálně.
Na vlastní DSP si zatím netroufám, resp. si to možná dám do plánu na neurčito s nízkou prioritou. I když by to byla pecka. Rodina si vytrénuje asistenta na vlastní hlasy, nevadily by vady řeči, případně by mohl reagovat třeba na pískání nebo klingonštinu.[/spoiler]
[spoiler=A přihodím ještě dva odkazy na kurzy v oblasti umělé inteligence:]https://www.edx.org/course/google-ai-fo ... nsorflowjs
https://aka.ms/30daysAI[/spoiler]
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Moderátor
- Příspěvky: 905
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 108 poděkování
- Dostal poděkování: 210 poděkování
Re: Hlasové ovládání HA v češtině STT - řeč na text
Tak po několika dnech v minovém poli jsem rozchodil C# SDK Microsoft-Cognitive-Services na RaspberryPi 3/Raspbian-lite (bez grafického prostředí)
Aktuálně Bullseye na Arm32 architektuře, Arm64 by neměl být rozdíl.
Použitý HW: Raspberry Pi 3B, I2S mikrofon INMP441, I2S zesilovač max98357 + nějaký malý reproduktor, BT reproduktor/mikrofon "Google Nest Mini 2"
[spoiler=Vytvoření SD karty se systémem pro raspberry] - Raspberry Pi Imager, OS vybrat některý Raspberry Pi Lite (Buster je podporován v dokumentaci, Bullseye mi nicméně funguje)
pomocí - ctrl+shift+x se otevře skryté menu, možnost nastavit jméno stroje, doplnit rovnou wifi, povolit ssh, nastavit heslo[/spoiler]
Pro připojení k RPi se hodí nějaký SSH klient, pro Windows je hezký třeba https://www.bitvise.com/ssh-client-download
[spoiler=Poznámky k hardware]
Arm v6 nestačí, tedy RPi1 a Zero fungovat nebude
RPi3 B co jsem použil má 1GB ram, RPi 3A a RPi Zero 2 mají 512MB - je to méně než jsem našel někde v dokumentaci k Visual Studio Code pro remote development, nicméně odhaduji že by fungovat mohly také protože není nainstalováno desktopové prostředí. Vyzkouším časem, objednáno.
I2S mikrofon a I2S zesilovač by měl fungovat asi jakýkoli, je to levné řešení, a pravděpodobně s nejrychlejší odezvou.
Ve výsledku je asi jedno jaký zvukový vstup/výstup se použije, momentálně mám připojený na vstupu I2S mikrofon a výstup jde přes bluetooth Google Nest. Google Nest jsem zkusil i jako mikrofon, funguje, jen odezva je delší než u přímo připojeného I2S mikrofonu.
[/spoiler]
[spoiler=instalace hardware i s obrázky]
I2S mikrofon: https://learn.adafruit.com/adafruit-i2s ... iring-test
I2S zesilovač https://learn.adafruit.com/adafruit-max ... -pi-wiring
vynechat bod 2) https://www.okdo.com/project/set-up-a-b ... pberry-pi/[/spoiler]
[spoiler=Proč zrovna C#?]
Většina oficiální dokumentace a příkladů je pro dva jazyky. Python a C#.
Pro kombinaci Linux + Arm32, případně Arm64 jsou k dispozici SDK pro jazyky C++, C# a Java
Teoreticky by v budoucnu mohla být i podpora pro Python na Arm64 (vývojářský blog ohledně Mac s procesory M1)
[/spoiler]
[spoiler=Instalace .NET, .NET Core včetně SDK a powershellu][/spoiler]
[spoiler=případně powershell jde nainstalovat z binárek][/spoiler]
[spoiler=Visual Studio Code a přístup k RPi]Na počítači nainstalovat Visual Studio Code
ctrl+shift+x nainstalovat Remote Development
ctrl+shift+p remote-ssh se připojit k raspberry Pro rychlý start jsem zvolil oficiální online kurz Microsoftu (vše zdarma pokud nechcete certifikát o absolvování)
Jen pak namísto virtuálního stroje používáte svoje Visual Studio Code připojené k raspberry.
Je tam i odkaz na vytvoření klíčů v Azure. https://azure.microsoft.com/cs-cz/free/ ... -services/
Instalace SDK ve složce s programem: A přidám trošku upravený původní kód program.cs o češtinu:
[/spoiler]
Pokud neposlouchá nebo nemluví tak je potřeba zvolit výchozí mikrofon a reproduktor.
Na tom jsem se zasekl při prvním pokusu, server socket error jsem si nespojil s audiem..., pak odešla stará SD karta. V současné instalaci jsem konečně na to přišel. Ač to vypisuji po spuštění "dotnet run" chybové hlášky, tak funguje vše a tyto jsou vztaženy pouze k zvukovému subsystému. Stačí mít vybrán mikrofon a reproduktor.
[spoiler=Jak vybrat výchozí zvukový vstup a výstup pomocí pactl]
service aplay blokuje v ALSA slave zařízení takže se zdá že nefunguje I2S mikrofon. Což ničemu nevadí, jde přes pulse.[/spoiler]
[spoiler=Ještě instalace speech SDK i pro C++]
SDK pro C++. Jen rozbalit a nastavit cesty. Instalace a příklady:
https://docs.microsoft.com/cs-cz/azure/ ... nguage-cpp
https://pimylifeup.com/raspberry-pi-swap-file/
https://docs.microsoft.com/en-us/azure/ ... oid-studio
https://github.com/Azure-Samples/cognit ... start-code
https://github.com/Azure-Samples/cognit ... quickstart
Jen rychlý test bez úprav:
A na češtinu přepnete jen doplněním
[/spoiler]
Přihodím ještě zajímavé odkazy
mikrofony ESP32: https://github.com/robertoostenveld/wifimic (a detekci probouzecího slova na ESP umíme)
A offline assistant - i pro HA - který chci vyzkoušet, případně upravit. Čeština je mezi jazyky.
https://rhasspy.readthedocs.io/en/latest/
https://community.home-assistant.io/t/r ... ker/154015
https://www.balena.io/blog/build-self-h ... e-required
Aktuálně Bullseye na Arm32 architektuře, Arm64 by neměl být rozdíl.
Použitý HW: Raspberry Pi 3B, I2S mikrofon INMP441, I2S zesilovač max98357 + nějaký malý reproduktor, BT reproduktor/mikrofon "Google Nest Mini 2"
[spoiler=Vytvoření SD karty se systémem pro raspberry] - Raspberry Pi Imager, OS vybrat některý Raspberry Pi Lite (Buster je podporován v dokumentaci, Bullseye mi nicméně funguje)
pomocí - ctrl+shift+x se otevře skryté menu, možnost nastavit jméno stroje, doplnit rovnou wifi, povolit ssh, nastavit heslo[/spoiler]
Pro připojení k RPi se hodí nějaký SSH klient, pro Windows je hezký třeba https://www.bitvise.com/ssh-client-download
[spoiler=Poznámky k hardware]
Arm v6 nestačí, tedy RPi1 a Zero fungovat nebude
RPi3 B co jsem použil má 1GB ram, RPi 3A a RPi Zero 2 mají 512MB - je to méně než jsem našel někde v dokumentaci k Visual Studio Code pro remote development, nicméně odhaduji že by fungovat mohly také protože není nainstalováno desktopové prostředí. Vyzkouším časem, objednáno.
I2S mikrofon a I2S zesilovač by měl fungovat asi jakýkoli, je to levné řešení, a pravděpodobně s nejrychlejší odezvou.
Ve výsledku je asi jedno jaký zvukový vstup/výstup se použije, momentálně mám připojený na vstupu I2S mikrofon a výstup jde přes bluetooth Google Nest. Google Nest jsem zkusil i jako mikrofon, funguje, jen odezva je delší než u přímo připojeného I2S mikrofonu.
[/spoiler]
[spoiler=instalace hardware i s obrázky]
I2S mikrofon: https://learn.adafruit.com/adafruit-i2s ... iring-test
I2S zesilovač https://learn.adafruit.com/adafruit-max ... -pi-wiring
vynechat bod 2) https://www.okdo.com/project/set-up-a-b ... pberry-pi/[/spoiler]
[spoiler=Proč zrovna C#?]
Většina oficiální dokumentace a příkladů je pro dva jazyky. Python a C#.
Pro kombinaci Linux + Arm32, případně Arm64 jsou k dispozici SDK pro jazyky C++, C# a Java
Teoreticky by v budoucnu mohla být i podpora pro Python na Arm64 (vývojářský blog ohledně Mac s procesory M1)
[/spoiler]
[spoiler=Instalace .NET, .NET Core včetně SDK a powershellu]
Kód: Vybrat vše
#je nakonec primitivně jednoduchá, jen to chce vše .NET do stejné složky, pak to funguje a nerozbije si to vzájemně cesty.
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel Current
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc
#adresu pro stazeni zjistim tady> https://dotnet.microsoft.com/en-us/download/dotnet/3.1
wget https://download.visualstudio.microsoft.com/download/pr/36a601f0-b88e-41ea-910b-4dde7b083e73/61ec8564d50fb391f9e3a10b226fdd0d/dotnet-sdk-3.1.417-linux-arm.tar.gz
tar zxf dotnet-sdk-3.1.417-linux-arm.tar.gz -C $HOME/.dotnet
#jen kontrola:
dotnet --info
dotnet --list-sdks
dotnet --list-runtimes
#--------------------- powershell - instalace pres dotnet core
dotnet tool install --global PowerShell
[spoiler=případně powershell jde nainstalovat z binárek]
Kód: Vybrat vše
#balicky pro nasledujici prikaz> https://github.com/PowerShell/PowerShell/releases
curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v7.2.1/powershell-7.2.1-linux-arm32.tar.gz
# Create the target folder where powershell will be placed
sudo mkdir -p /opt/microsoft/powershell/7
# Expand powershell to the target folder
sudo tar zxf /tmp/powershell.tar.gz -C /opt/microsoft/powershell/7
# Set execute permissions
sudo chmod +x /opt/microsoft/powershell/7/pwsh
# Create the symbolic link that points to pwsh
sudo ln -s /opt/microsoft/powershell/7/pwsh /usr/bin/pwsh
pwsh
[spoiler=Visual Studio Code a přístup k RPi]Na počítači nainstalovat Visual Studio Code
ctrl+shift+x nainstalovat Remote Development
ctrl+shift+p remote-ssh se připojit k raspberry Pro rychlý start jsem zvolil oficiální online kurz Microsoftu (vše zdarma pokud nechcete certifikát o absolvování)
Jen pak namísto virtuálního stroje používáte svoje Visual Studio Code připojené k raspberry.
Je tam i odkaz na vytvoření klíčů v Azure. https://azure.microsoft.com/cs-cz/free/ ... -services/
Instalace SDK ve složce s programem: A přidám trošku upravený původní kód program.cs o češtinu:
Kód: Vybrat vše
// nezapomenout doplnit Azure klíč do appsettings.json
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
// Import namespaces
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;
namespace speaking_clock
{
class Program
{
private static SpeechConfig speechConfig;
static async Task Main(string[] args)
{
try
{
// Get config settings from AppSettings
IConfigurationBuilder builder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
IConfigurationRoot configuration = builder.Build();
string cogSvcKey = configuration["CognitiveServiceKey"];
string cogSvcRegion = configuration["CognitiveServiceRegion"];
// Configure speech service
speechConfig = SpeechConfig.FromSubscription(cogSvcKey, cogSvcRegion);
Console.WriteLine("Připraven na použití hlasových služeb v: " + speechConfig.Region);
// // //testing what input devices avail. https://stackoverflow.com/questions/62006306/azure-speech-recognition-not-detecting-microphone-spxerr-mic-not-found
// // var devices = await DeviceInformation.FindAllAsync(DeviceClass.AudioCapture);
// // foreach (var device in devices)
// // {
// // Console.WriteLine($"{device.Name}, {device.Id}\n");
// // }
// Configure voice
speechConfig.SpeechSynthesisVoiceName = "cs-CZ-VlastaNeural";
// Get spoken input
string command = "";
command = await TranscribeCommand();
if (command.ToLower()=="kolik je hodin?")
{
await TellTime();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
static async Task<string> TranscribeCommand()
{
string command = "";
// Configure speech recognition
using AudioConfig audioConfig = AudioConfig.FromDefaultMicrophoneInput();
/* var enumerator = new MMDeviceEnumerator();
string specifiedMicID = string.Empty;
foreach (var endpoint in
enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active))
{
if (endpoint.FriendlyName != this.MicName)
continue;
else
{
specifiedMicID = endpoint.ID;
break;
}
}
using AudioConfig audioConfig = AudioConfig.FromMicrophoneInput(specifiedMicID); */
using SpeechRecognizer speechRecognizer = new SpeechRecognizer(speechConfig, "cs-CZ", audioConfig);
Console.WriteLine("Ted mluv...");
// Process speech input
SpeechRecognitionResult speech = await speechRecognizer.RecognizeOnceAsync();
if (speech.Reason == ResultReason.RecognizedSpeech)
{
command = speech.Text;
Console.WriteLine(command);
}
else
{
Console.WriteLine(speech.Reason);
if (speech.Reason == ResultReason.Canceled)
{
var cancellation = CancellationDetails.FromResult(speech);
Console.WriteLine(cancellation.Reason);
Console.WriteLine(cancellation.ErrorDetails);
}
}
// Return the command
return command;
}
static async Task TellTime()
{
var now = DateTime.Now;
string responseText = "Je právě " + now.Hour.ToString() + ":" + now.Minute.ToString("D2");
// Configure speech synthesis
speechConfig.SpeechSynthesisVoiceName = "cs-CZ-AntoninNeural";
using SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(speechConfig);
// Synthesize spoken output
SpeechSynthesisResult speak = await speechSynthesizer.SpeakTextAsync(responseText);
if (speak.Reason != ResultReason.SynthesizingAudioCompleted)
{
Console.WriteLine(speak.Reason);
}
// Print the response
Console.WriteLine(responseText);
}
}
}
Pokud neposlouchá nebo nemluví tak je potřeba zvolit výchozí mikrofon a reproduktor.
Na tom jsem se zasekl při prvním pokusu, server socket error jsem si nespojil s audiem..., pak odešla stará SD karta. V současné instalaci jsem konečně na to přišel. Ač to vypisuji po spuštění "dotnet run" chybové hlášky, tak funguje vše a tyto jsou vztaženy pouze k zvukovému subsystému. Stačí mít vybrán mikrofon a reproduktor.
[spoiler=Jak vybrat výchozí zvukový vstup a výstup pomocí pactl]
service aplay blokuje v ALSA slave zařízení takže se zdá že nefunguje I2S mikrofon. Což ničemu nevadí, jde přes pulse.
Kód: Vybrat vše
pi@lilith1:~/projects/AI-102-AIEngineer/07-speech/C-Sharp/speaking-clock $ service aplay start
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'aplay.service'.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
pi@lilith1:~/projects/AI-102-AIEngineer/07-speech/C-Sharp/speaking-clock $ pactl list short sources
0 alsa_output.platform-asoc-simple-card.0.stereo-fallback.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 alsa_input.platform-asoc-simple-card.0.stereo-fallback module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
2 bluez_sink.CC_F4_11_E1_76_93.a2dp_sink.monitor module-bluez5-device.c s16le 2ch 44100Hz SUSPENDED
pi@lilith1:~/projects/AI-102-AIEngineer/07-speech/C-Sharp/speaking-clock $ pactl list short sinks
0 alsa_output.platform-asoc-simple-card.0.stereo-fallback module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 bluez_sink.CC_F4_11_E1_76_93.a2dp_sink module-bluez5-device.c s16le 2ch 44100Hz SUSPENDED
pi@lilith1:~/projects/AI-102-AIEngineer/07-speech/C-Sharp/speaking-clock $ pactl set-default-sink bluez_sink.CC_F4_11_E1_76_93.a2dp_sink
pi@lilith1:~/projects/AI-102-AIEngineer/07-speech/C-Sharp/speaking-clock $ pactl set-default-source alsa_input.platform-asoc-simple-card.0.stereo-fallback
pi@lilith1:~/projects/AI-102-AIEngineer/07-speech/C-Sharp/speaking-clock $ dotnet run
Připraven na použití hlasových služeb v: westeurope
Ted mluv...
Kolik je hodin?
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
Je právě 22:28
pi@lilith1:~/projects/AI-102-AIEngineer/07-speech/C-Sharp/speaking-clock $ pactl set-default-source bluez_sink.CC_F4_11_E1_76_93.a2dp_sink.monitor
pi@lilith1:~/projects/AI-102-AIEngineer/07-speech/C-Sharp/speaking-clock $ dotnet run
Připraven na použití hlasových služeb v: westeurope
Ted mluv...
Kolik je hodin?
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
Je právě 22:35
[spoiler=Ještě instalace speech SDK i pro C++]
SDK pro C++. Jen rozbalit a nastavit cesty. Instalace a příklady:
https://docs.microsoft.com/cs-cz/azure/ ... nguage-cpp
https://pimylifeup.com/raspberry-pi-swap-file/
https://docs.microsoft.com/en-us/azure/ ... oid-studio
https://github.com/Azure-Samples/cognit ... start-code
https://github.com/Azure-Samples/cognit ... quickstart
Jen rychlý test bez úprav:
Kód: Vybrat vše
echo 'export SPEECHSDK_ROOT="$HOME/speechsdk"' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SPEECHSDK_ROOT/lib/arm32"' >> ~/.bashrc
source ~/.bashrc
pi@lilith1:~/projects/cognitive-services-speech-sdk-2/quickstart/cpp/linux/from-microphone $ make
g++ helloworld.cpp -o helloworld \
--std=c++14 \
-I/home/pi/speechsdk/include/cxx_api -I/home/pi/speechsdk/include/c_api \
-L/home/pi/speechsdk/lib/arm32 \
-lMicrosoft.CognitiveServices.Speech.core -lpthread -l:libasound.so.2
pi@lilith1:~/projects/cognitive-services-speech-sdk-2/quickstart/cpp/linux/from-microphone $ ./helloworld
Say something...
We recognized: Hello.
Kód: Vybrat vše
config->SetSpeechRecognitionLanguage("cs-CZ");
Přihodím ještě zajímavé odkazy
mikrofony ESP32: https://github.com/robertoostenveld/wifimic (a detekci probouzecího slova na ESP umíme)
A offline assistant - i pro HA - který chci vyzkoušet, případně upravit. Čeština je mezi jazyky.
https://rhasspy.readthedocs.io/en/latest/
https://community.home-assistant.io/t/r ... ker/154015
https://www.balena.io/blog/build-self-h ... e-required
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Moderátor
- Příspěvky: 905
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 108 poděkování
- Dostal poděkování: 210 poděkování
Re: Hlasové ovládání HA v češtině STT - řeč na text
Tip na velmi slušný mikrofon pro (asi jakékoliv) hlasové ovládání:
DSP, AGC, detekce směru hlasu, odfiltrování okolí. Připojení přes USB.
https://wiki.seeedstudio.com/ReSpeaker_Mic_Array_v2.0/
DSP, AGC, detekce směru hlasu, odfiltrování okolí. Připojení přes USB.
https://wiki.seeedstudio.com/ReSpeaker_Mic_Array_v2.0/
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Moderátor
- Příspěvky: 905
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 108 poděkování
- Dostal poděkování: 210 poděkování
Re: Hlasové ovládání HA v češtině STT - řeč na text
Jen porovnání MS vs Google
Zkusil jsem namluvit stejný text a
zkouším "masked profanity" - funguje dobře u obou. Zkouším "ITN"(Korun = Kč, sedmadvacet =27...), funguje daleko lépe u Google. Nicméně rozpoznání textu vyhrává MS na plné čáře. Ještě to bude náročné co se týče porozumnění textu.
[spoiler=Azure:][/spoiler]
[spoiler=Google:][/spoiler]
Zkusil jsem namluvit stejný text a
zkouším "masked profanity" - funguje dobře u obou. Zkouším "ITN"(Korun = Kč, sedmadvacet =27...), funguje daleko lépe u Google. Nicméně rozpoznání textu vyhrává MS na plné čáře. Ještě to bude náročné co se týče porozumnění textu.
[spoiler=Azure:]
Kód: Vybrat vše
{'RecognitionStatus': 'Success', 'Offset': 5000000, 'Duration': 186900000,
'NBest': [{'Confidence': 0.8479176759719849,
'Lexical': 'no tak zkouším něco namluvit uvidíme jak to dopadne a nechám to rozpoznat do prdele co si jako o sobě myslíš doktore mráčku byl to doktor vejvoda s platem tři a půl tisíce korun venku je tři a půl stupně teplotu nastavte na sedmadvacet',
'ITN': 'no tak zkouším něco namluvit uvidíme jak to dopadne a nechám to rozpoznat do prdele co si jako o sobě myslíš doktore mráčku byl to doktor vejvoda s platem 3 a půl 1000 korun venku je 3 a půl stupně teplotu nastavte na sedmadvacet',
'MaskedITN': 'no tak zkouším něco namluvit uvidíme jak to dopadne a nechám to rozpoznat ** ****** co si jako o sobě myslíš doktore mráčku byl to doktor vejvoda s platem 3 a půl 1000 korun venku je 3 a půl stupně teplotu nastavte na sedmadvacet',
'Display': 'No tak zkouším něco namluvit, uvidíme jak to dopadne a nechám to rozpoznat. ** ****** co si jako o sobě myslíš doktore mráčku? Byl to doktor vejvoda s platem 3 a půl 1000 korun. Venku je 3 a půl stupně, teplotu nastavte na sedmadvacet.'}]}
[spoiler=Google:]
Kód: Vybrat vše
A tak zkouším něco namluvit a uvidíme jak to dopadne a nechám to dostat do p***** se kosi do měsíce to jde miláčku Eltodo Rubicon a spal jsem tři a půl 1300 Kč až budu ve tři a půl stupně teplotu nastav na 27
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Moderátor
- Příspěvky: 905
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 108 poděkování
- Dostal poděkování: 210 poděkování
Re: Hlasové ovládání HA v češtině STT - řeč na text
Další poznámky - trochu odbočka na uklidněnou protože se mi nedaří s ESP32 stream z mikrofonu přes API...
Mycroft/Picroft
Poznámky k návodu. Postupně budu doplňovat do tohoto příspěvku.
https://mycroft-ai.gitbook.io/docs/usin ... ft/picroft
Přes raspberry pi imager ctrl+shift+x jde nastavit jak ssh tak wifi i u tohoto image, takže nejsou potřeba žádné periferie.
Novější image, házím na samostatné RPi, počítám že po odladění konfigurace pojede i docker image na stroji s HA.
https://github.com/kleo/picroft/releases
apt update, upgrade,
Při hlášce v puštěném CLI nebo logu - "Error running install_or_update on mycroft-něco" smazávám, nebo raději přesunuji (pro případ rozbití) /opt/mycroft/skills/mycroft-něco nebo postup dle https://community.mycroft.ai/t/mycroft- ... flict/9541
setup přes mycroft-setup-wizard, při použití
HW: ReSpeaker Mic Array v2.0 nebo ReSpeaker USB Mic Array (což je mírně vylepšené předchozí a zakrytované)
upgraduje sám firmware, není potřeba nic dalšího
při padání precise_runner přepnout na jiné "naslouchátko" - z cli: "set listener to pocketsphinx"
(chybí podpora AVX instrukční sady nebo předtím fungoval? )
a do totoho problému jsem se dostal pravděpodobně smazáním původního /opt/mycroft/skills/mycroft-configuration.mycroftai
Důležité soubory
po první registraci na mycroft.ai je vytvořen soubor s identitou, použít při reinstalaci
/home/pi/.config/mycroft/identity/identity2.json
Jedno z lokálních umístění konfigurace:
/home/pi/.config/mycroft/mycroft.conf
odkazy ke klíčům:
https://pypi.org/project/mycroft-tts-plugin-azure/
https://www.voiptools.com/setup-google- ... scription/
Pro použití azure tts doinstalovat bezocasý
mycroft-pip install mycroft-tts-plugin-azure
instalace skills, jak na různé různé zdroje, https://mycroft-ai.gitbook.io/docs/skil ... ls-manager
budu instalovat z githubu kde jsem si forknul repozitáře s podporou češtiny (zkusím je i zaktualizovat proti hlavní větvi)
https://github.com/kiklhorn/mycroft-skills-manual
Snažím se jen spojit aktuální vývoj s hotovými cz překlady. Mezi prvními zkusím i homeassistant. ten forknout nemusím, čeština je.
Povídá hned o nastavení IP HA. Nastavím, nastavím klíč z HA a jede.
Podívám se ještě na kompletní konfiguraci (Mycroft si ji sestavuje jak z toho co je nastaveno na mycroft.ai tak z lokálních souborů. Pokud se tlučou, platí poslední)
a přes konzoli (mycroft-cli-client) nastavím listener (lokální komponenta snažící se odchytit probouzecí slovo - např. "hey Mycroft") na precise engine - funguje mnohem spolehlivěji než samotný pocketsphinx, zejména v hlasitém prostředí. Na videu ještě použit není, to jsem ale nahrával v relativním tichu.
Informace jsou tu snad všechny, použito Raspberry Pi4 + ReSpeaker Mic Array v2.0 + přes jack připojené dva malé pasivní reproduktorky.
Integrace s HA funguje krásně bez nějakého nastavování na straně HA díky fuzzywuzzy komponentě která se v seznamu entit HA snaží najít nejpodobnější název entity a provést s ní akci.
Možná je Mycroft pro pouhé použití s HA trochu kanón na vrabce, ale díky dalším skillům se s ním dá pokecat - kdo je... za jak dlouho budou... a spousta dalšího.
Topic tématu splněn, ovládám HA česky.
Rozhodně téma neopouštím.
V plánu mám napsat funkční STT přes Azure.
Bing který je k dispozici mi nefunguje, možná pojede pokud bude použit region westus.
Nefunguje mi ani streamovaný Google, tento výchozí si nejdříve poslechne požadavek a pak jej teprve celý pošle. Což znamená odpověď dostanu o nějakou tu sekundu později oproti tomu co by bylo technicky možné.
Mycroft/Picroft
Poznámky k návodu. Postupně budu doplňovat do tohoto příspěvku.
https://mycroft-ai.gitbook.io/docs/usin ... ft/picroft
Přes raspberry pi imager ctrl+shift+x jde nastavit jak ssh tak wifi i u tohoto image, takže nejsou potřeba žádné periferie.
Novější image, házím na samostatné RPi, počítám že po odladění konfigurace pojede i docker image na stroji s HA.
https://github.com/kleo/picroft/releases
apt update, upgrade,
Při hlášce v puštěném CLI nebo logu - "Error running install_or_update on mycroft-něco" smazávám, nebo raději přesunuji (pro případ rozbití) /opt/mycroft/skills/mycroft-něco nebo postup dle https://community.mycroft.ai/t/mycroft- ... flict/9541
setup přes mycroft-setup-wizard, při použití
HW: ReSpeaker Mic Array v2.0 nebo ReSpeaker USB Mic Array (což je mírně vylepšené předchozí a zakrytované)
upgraduje sám firmware, není potřeba nic dalšího
při padání precise_runner přepnout na jiné "naslouchátko" - z cli: "set listener to pocketsphinx"
(chybí podpora AVX instrukční sady nebo předtím fungoval? )
a do totoho problému jsem se dostal pravděpodobně smazáním původního /opt/mycroft/skills/mycroft-configuration.mycroftai
Důležité soubory
po první registraci na mycroft.ai je vytvořen soubor s identitou, použít při reinstalaci
/home/pi/.config/mycroft/identity/identity2.json
Jedno z lokálních umístění konfigurace:
/home/pi/.config/mycroft/mycroft.conf
Kód: Vybrat vše
{
"tts": {
"module": "azure_tts",
"azure_tts": {
"api_key": "klic vygenerovany na azure",
"voice": "cs-CZ-AntoninNeural",
"region": "westeurope",
"lang": "cs-CZ"
}
},
"stt": {
"google_cloud": {
"lang": "cs-CZ",
"credential": {
"json": {
"type": "service_account",
............ celý json vygenerovaný v api ...............https://console.cloud.google.com/apis/api/speech.googleapis.com/
}
}
},
"module": "google_cloud"
},
"lang": "cs-cz",
"max_allowed_core_version": 21.2,
"hotwords": {
"hey mycroft": {
"module": "pocketsphinx"
}
}
}
https://pypi.org/project/mycroft-tts-plugin-azure/
https://www.voiptools.com/setup-google- ... scription/
Pro použití azure tts doinstalovat bezocasý
mycroft-pip install mycroft-tts-plugin-azure
instalace skills, jak na různé různé zdroje, https://mycroft-ai.gitbook.io/docs/skil ... ls-manager
budu instalovat z githubu kde jsem si forknul repozitáře s podporou češtiny (zkusím je i zaktualizovat proti hlavní větvi)
https://github.com/kiklhorn/mycroft-skills-manual
Kód: Vybrat vše
mycroft-msm remove mycroft-spelling
mycroft-msm install https://github.com/kiklhorn/skill-spelling
Snažím se jen spojit aktuální vývoj s hotovými cz překlady. Mezi prvními zkusím i homeassistant. ten forknout nemusím, čeština je.
Kód: Vybrat vše
mycroft-msm install https://github.com/MycroftAI/skill-homeassistantt
Podívám se ještě na kompletní konfiguraci (Mycroft si ji sestavuje jak z toho co je nastaveno na mycroft.ai tak z lokálních souborů. Pokud se tlučou, platí poslední)
Kód: Vybrat vše
mycroft-config get
Kód: Vybrat vše
set listener to precise
Integrace s HA funguje krásně bez nějakého nastavování na straně HA díky fuzzywuzzy komponentě která se v seznamu entit HA snaží najít nejpodobnější název entity a provést s ní akci.
Možná je Mycroft pro pouhé použití s HA trochu kanón na vrabce, ale díky dalším skillům se s ním dá pokecat - kdo je... za jak dlouho budou... a spousta dalšího.
Topic tématu splněn, ovládám HA česky.
Rozhodně téma neopouštím.
V plánu mám napsat funkční STT přes Azure.
Bing který je k dispozici mi nefunguje, možná pojede pokud bude použit region westus.
Nefunguje mi ani streamovaný Google, tento výchozí si nejdříve poslechne požadavek a pak jej teprve celý pošle. Což znamená odpověď dostanu o nějakou tu sekundu později oproti tomu co by bylo technicky možné.
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
-
- Moderátor
- Příspěvky: 905
- Registrován: 03. červenec 2021, 18:35
- Dal poděkování: 108 poděkování
- Dostal poděkování: 210 poděkování
Re: Hlasové ovládání HA v češtině STT - řeč na text
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox