Mycroft-core: Usando mycroft sem casa

Criado em 4 mai. 2018  ·  17Comentários  ·  Fonte: MycroftAI/mycroft-core

Gostaria de usar mycroft sem Home (conta mycroft) configurando minha própria chave de API STT do Google. Não consigo encontrar uma descrição exata disso. Não sou capaz de fazê-lo de acordo com a breve descrição hele: https://github.com/MycroftAI/mycroft-core#using-mycroft-without-home .

Por favor, onde posso encontrar um guia para isso?

Obrigado.

Comentários muito úteis

Ok, obrigado pela resposta.

Vendo um código, descobri uma maneira de configurar algumas coisas úteis. Estou colando aqui para os outros. Eu recomendaria incluí-los na documentação.

Algumas modificações da configuração local /home/mycroft/.mycroft/mycroft.conf

  • para usar a chave de API personalizada do Google Cloud Speech (preencha suas próprias credenciais json):

~ json..."stt": {"módulo": "google_cloud","google_cloud": {"credencial": {"json": {}}}},...~

  • para usar tts do Google em vez de mycroft mimic package:
    ~ json..."tts": {"módulo": "google","Google": {"lang": "en-us","lento": falso}},...~

  • usar espeak tts em vez de mycroft mimic package:

    • (não se esqueça de instalar o pacote espeak primeiro)
      ~ json..."tts": {"módulo": "espeak","espeak": {"lang": "en"}},...~

Todos 17 comentários

Não sei como desativar a dependência de api.mycroft.ai.

1) Eu defino a chave de API stt google_cloud personalizada.

2) Defino "server.update": false em /home/mycroft/.mycroft/mycroft.conf

Mas ainda tenho estas linhas no log:

~14: 48: 28.473 - requests.packages.urllib3.connectionpool - DEBUG - Redefinindo conexão interrompida: api.mycroft.ai14: 48: 29.084 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai : 443 "GET / v1 / device HTTP / 1.1" 401 3814: 48: 29.104 - requests.packages.urllib3.connectionpool - DEBUG - Iniciando nova conexão HTTPS (1): api.mycroft.ai14: 48: 29.645 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai : 443 "GET / v1 / auth / token HTTP / 1.1" 401 38~

Porque?

Infelizmente, achei a documentação do mycroft muito incompleta para jogos avançados. É necessário inspecionar o código-fonte para obter configurações específicas.

  • Diz-se: "Você pode usar mycroft sem home.", Mas nenhum exemplo de configuração é fornecido.
  • É o sadi: "Você pode usar sua própria chave de API do Google." mas nenhum exemplo de configuração é fornecido para isso.

É um projeto muito interessante e gosto, mas MELHORAR A DOCUMENTAÇÃO , por favor.

Olá @Josca , estamos trabalhando continuamente na documentação, mas, como você pode ver, há lacunas.

Se o stt google_cloud estiver configurado corretamente, você poderá falar com mycroft e pedir informações como a hora.

Você deve colocar na lista negra a habilidade de emparelhamento e a habilidade de configuração na configuração, adicionando uma entrada:

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

Você ainda pode ver conexões com falha para servidores mycroft de coisas como configurações de habilidade. Acho que isso ainda não respeita o valor de atualização.

Ok, obrigado pela resposta.

Vendo um código, descobri uma maneira de configurar algumas coisas úteis. Estou colando aqui para os outros. Eu recomendaria incluí-los na documentação.

Algumas modificações da configuração local /home/mycroft/.mycroft/mycroft.conf

  • para usar a chave de API personalizada do Google Cloud Speech (preencha suas próprias credenciais json):

~ json..."stt": {"módulo": "google_cloud","google_cloud": {"credencial": {"json": {}}}},...~

  • para usar tts do Google em vez de mycroft mimic package:
    ~ json..."tts": {"módulo": "google","Google": {"lang": "en-us","lento": falso}},...~

  • usar espeak tts em vez de mycroft mimic package:

    • (não se esqueça de instalar o pacote espeak primeiro)
      ~ json..."tts": {"módulo": "espeak","espeak": {"lang": "en"}},...~

ping @KathyReid

O Google TTS funcionará localmente? Precisamos instalar algum pacote para isso?

O Google TTS não funciona localmente, é um serviço remoto. (Mas você não precisa dos servidores mycroft para isso)

@YogeshSingla , Google TTS é um serviço remoto, mas gratuito. Você não precisa de nenhum registro também. Mas acho que não é garantido o funcionamento desse serviço. É implementado usando o pacote Python gTTS . Parece não ser suportado pelo próprio Google.

Eu recomendo espeak como uma solução simples e local. Sua qualidade não é grande, mas é confiável.

Você deve primeiro instalar o pacote espeak para usá-lo:
~sudo apt-get install espeak~

Só por curiosidade, por que você usaria o espeak para tts locais em vez do Mimic, que também é executado localmente? Eu posso pensar em alguns motivos grátis, eu honestamente estou pensando no seu.

Também estou interessado nas razões para evitar o Lar. Novamente, posso pensar em alguns, mas gostaria de saber sua opinião, se você estiver disposto a compartilhar.

@penrods

Eu sei que Espeak tem uma qualidade bastante baixa em comparação com Mimic, Google TTS e outros, mas também
tem muitas vantagens:

  1. Mimic requer construção longa. Não encontrei nenhum guia simples de como instalar o Mimic como um pacote pré-compilado. Quando eu configuro mycroft-core , prefiro definir skip mimic option ( bash dev_setup.sh -sm ).
    Espeak é um pacote Debian padrão, então é muito fácil de instalar e usar.

  2. Espeak oferece suporte a vários idiomas, incluindo meu idioma nativo, o tcheco. Não vi nenhuma lista de idiomas suportados nos documentos do Mimic . Eu acho que é fortemente focado em inglês (por razões compreensíveis).

  3. Espeak tem uma resposta muito rápida, o que é muito útil, especialmente durante a fase de desenvolvimento. O Mimics talvez tenha, mas não o testou.

  4. Por esses motivos, achei a melhor solução para fins de desenvolvimento.

picotts é igualmente rápido, mas tem melhor qualidade de saída, até onde eu sei (não sei sobre o tcheco) - não sei se atualmente é possível usá-lo com o Mycroft pronto para uso.

Também estou interessado em ter um Mycroft independente que não dependa de conexão com a internet para funcionar.

Um dos nossos objetivos aqui é mover o máximo possível "localmente", mas no geral queremos oferecer suporte a todos os idiomas. Nesse ínterim, também pretendemos ter um assistente viável, não apenas um brinquedo. Portanto, no momento, optamos por usar alguns serviços em nuvem enquanto trabalhamos de forma independente e com parceiros para construir a tecnologia necessária para alcançar a operação offline completa.

Portanto, nesse ínterim, não vamos concentrar os recursos de desenvolvimento para oferecer suporte ao que são experiências de usuário indiscutivelmente inferiores com motores TTS de gerações mais antigas. Você está _absolutamente_ bem-vindo a enviar PRs se quiser ver isso, mas a equipe principal está focada na construção de tecnologias abertas como DeepSpeech e Mimic / Mimic2, em vez de retroceder no desempenho e também ir por caminhos de tecnologia que não têm um boa rota para apoiar outros idiomas.

Se você gostaria de enviar algumas alterações para os scripts dev_setup.sh ou doc ​​para oferecer suporte a mecanismos TTS alternativos, estou feliz em colocá-los. Mas eu realmente não vejo isso como um passo adiante em geral.

Espero que isso não pareça desprezível, estamos apenas limitados em nosso tempo e temos que escolher o que vamos enfrentar.

@penrods Este não foi um pedido de recurso para adicionar picotts, apenas uma dica para o usuário acima e outros que possam querer saber. O pedido de recurso aqui é para tornar possível o uso offline (o que eu entenderia se não fosse do interesse de uma empresa que precisa ganhar a vida de alguma forma).

Compreenda totalmente, apenas explicando porque não estamos adicionando suporte para picotts e tal! Eu acho que o mimic é perfeitamente viável como um mecanismo de TTS offline hoje (sim, leva um tempo para construir, isso é único). Estamos trabalhando em várias outras coisas para o STT "offline" - realmente mais uma abordagem de "nuvem pessoal" no curto prazo.

Estou triste em ouvir isso. Atualmente estou trabalhando em uma solução de casa inteligente sem nuvem. Por padrão, ele não se conecta à nuvem de forma alguma.

Estou explorando se o MyCroft pode ser uma boa solução para controle de voz. Mas se alguma instalação precisa ter uma conexão com a nuvem, não posso usá-la.

Para o meu público-alvo, a limitação de apenas falar em inglês é uma compensação aceitável, pelo menos até que o hardware de aprendizado de máquina de ponta se torne um lugar comum.

Também notei que o MyCroft realmente construiu uma versão do motor Tacotron TTS? Não ofereceu resultados aceitáveis?
https://github.com/MycroftAI/mimic2

Houve algum progresso, existe o projeto de back-end pessoal . No entanto, este projeto ainda é muito WIP e, conforme declarado acima para STT, você precisaria usar algo como o back-end deepspeech_server com uma instância local de deepspeech rodando em uma máquina poderosa na rede local.

Enquanto isso, o Selene-Backend (a pilha de software por trás de home.mycroft.ai) foi disponibilizado ao público.

Como eu acho que a maioria, senão todas as configurações aqui estão cobertas pela documentação agora e o Selene foi lançado, estou encerrando este problema.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Zacki84 picture Zacki84  ·  10Comentários

ChanceNCounter picture ChanceNCounter  ·  8Comentários

Ahmed-Benj picture Ahmed-Benj  ·  7Comentários

fxdgear picture fxdgear  ·  6Comentários

mghoffmann picture mghoffmann  ·  6Comentários