Alertas sonoros Centreon com Ollama e Piper AI

Neste post vamos combinar vários elementos para ter notificações de voz em nosso sistema de monitoramento. É claro que usaremos Inteligência Artificial local e segura (Olhama) para gerar um texto amigável e humano com o alerta Centreon, para depois reproduzi-lo em nossa tela de 7 polegadas″ graças a Piper e uma voz em espanhol perfeito.

Então o que eu disse, se você tiver um sistema de monitoramento baseado no Centreon, saberá que pode receber alertas quando houver um problema em um serviço ou host monitorado, Desta forma, você descobrirá quaisquer problemas em seu datacenter. Em um Postagem anterior vimos como tornar as mensagens que o Centreon gera mais 'humanas'’ graças à IA de Ollama, naquela ocasião, ele enviou o alerta em formato de texto pelo Telegram. Hoje a diferença é que teremos a mensagem reproduzida por uma voz humana (Graças a Piper) e explodir através dos alto-falantes de um pequeno Raspberry Pi, que eu uso em mim 7 Tela″ Monitorização.

Este seria um exemplo de áudio:

Ah, É claro, Lembre-se de que tudo o que veremos neste post é de código aberto, local, certo, não é necessária internet

Gaiteiro

Portanto, começamos com Piper, que, como se costuma dizer em seu site oficial É um 'sistema neural de conversão de texto em fala local rápido que soa muito bem'. É um TTS (Conversão de texto em fala) que podemos instalar no Raspberry Pi para converter qualquer texto em áudio com uma imensa variedade de vozes em diferentes idiomas que serão úteis!

A maneira mais fácil de instalar o Piper no Raspberry Pi, ele estará baixando o binário compilado para nossa arquitetura de CPU. Que saberemos executando: 'cat /proc/cpuinfo'.

  • Para desktop Linux de 64 bits: amd64
  • Para o Raspberry Pi 4 64 bits: Braço 64
  • Para o Raspberry Pi 3/4 32 bits: Armv7

Baixe a versão mais recente que você encontra no GitHub, Os links se tornarão obsoletos. Nós baixamos, Descompactamos e entramos no seu diretório:

wget https://github.com/rhasspy/piper/releases/download/v1.2.0/piper_armv7.tar.gz tar zxfv piper_armv7.tar.gz cd piper

Escolhemos um modelo de voz treinado do seu repositório: https://github.com/rhasspy/piper/#voices e quando escolhemos o que mais gostamos, baixamos o arquivo ONNX e o JSON. A propósito, se você quiser ouvi-los para ver como eles soam, Use este site: https://rhasspy.github.io/piper-samples/. Vir, nós os baixamos:

wget https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/es/es_ES/sharvard/medium/es_ES-sharvard-medium.onnx?download=true -O es_ES-sharvard-medium.onnx wget https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/es/es_ES/sharvard/medium/es_ES-sharvard-medium.onnx.json?download=true.json -O es_ES-sharvard-medium.onnx.json

E podemos tentar agora, Teremos duas opções, crie o fluxo de áudio e ouça-o diretamente pelos alto-falantes do Raspberry Pi, ou gerar um arquivo .wav para o que precisamos. Correr:

echo 'Hola, esto es un ejemplo de una frase.' | ./piper --model es_ES-sharvard-medium.onnx --output-raw | Aplay -r 22050 -F S16_LE -T RAW -

E vai soar mais ou menos assim:

Integração com o Centreon

Se quisermos ligar para Piper a partir de um alerta de notificação, Estes são os passos que segui. Primeiro, no Raspberry Pi, criaremos um script para o Centreon chamar quando houver uma notificação, executará este script que notificará os alto-falantes do alerta gerado. O script receberá como primeira e única variável o texto a ser reproduzido. Fiquei com algo assim (/Home/Piper/Piper/alerta_piper.sh):

#!/Bin/Bash CD /Home/Pi/Piper RM alerta.wav Echo $1 | ./piper --modelo es_ES-sharvard-medium.onnx --length_scale 1.1 --output_file alerta.wav systemctl stop snapclient aplay alerta_inicio.wav aplay alerta.wav aplay alerta_fin.wav systemctl start snapclient

Alguns detalhes que você verá é que eu desacelero um pouco a voz dele, e isso interrompeu alguns serviços do Snapclient, já que a música ambiente também costuma ser reproduzida nesta tela e para pará-la temporariamente enquanto a mensagem soa.

Depois de fazer o script executável, devemos chamá-lo/executá-lo a partir do servidor Centreon Central, ou de um Poller, se aplicável. Para fazer isso,, será necessário impressão digital entre o servidor Centreon e o Raspberry Pi, para que você possa acessar via SSH sem pedir credenciais, e dessa forma executaremos o script remotamente.

su centreon-engine ssh-keygen -t rsa cat /var/lib/centreon-engine/.ssh/id_rsa.pub ssh-rsa AAA... ySHsfu0= centroon-engine@os-poller-osit

Então, no Centreon, fazemos login como o usuário que executa as coisas no Centreon, Geramos uma chave privada e pública se não as tivermos; Então, com o CAT, veremos a chave pública recém-criada e a copiaremos.

Cole a chave pública do Centreon Central ou Poller no Raspberry Pi no arquivo /home/pi/.ssh/authorized_keys

E tentamos ver se nos conectamos do Centreon com o motor centreon ao Raspberry Pi com um SSH::

Sh pi@DIRECCION_IP_RASPBERRY_PI

Agora resta registrar os comandos no Centreon que serão usados para notificar quando um Host ou um Serviço tiver problemas. Se usarmos Neste post anterior Para referência, onde já geramos os scripts para lançar a mensagem gerada pela IA de Ollama para o Telegram, Bem, simplesmente teremos que adicionar uma linha no final que chame o script criado no Raspberry Pi e pronto. Desta forma, receberemos a notificação no Telegram e através dos alto-falantes. Deixo-vos um resumo do script que alerta problemas nos Hosts, Como eu disse, o importante é a última linha:

#!/bin/bash

# A IA de Ollama gera a mensagem para provar text="Por favor, gera um texto para uma notificação que será enviada para o smartphone do usuário com informações úteis. Você é um agente pessoal prestativo que gera texto para técnicos de TI. Suas respostas podem ser técnicas, Não se ofereça como ajuda, Não dê recomendações. A mensagem que você tem a dizer é sobre um problema do tipo: "$1", Na equipe "$2" já que está no estado "$3". Não diga olá, Não diga olá e não diga adeus, Nem mesmo obrigado por nada. A resposta deve ser em espanhol e a mensagem deve ser breve."

texto_generado = $(/usr/bin/curl http://DIRECCION_IP_OLLAMA:11434/api/gerar -H "Tipo de conteúdo: aplicativo/json" -d '{
  "modelo": "lhama3",
  "rápido": "'"$Texto"'",
  "temperatura": 0.1,
  "Riacho": Falso,
  "max_length": 50
}' | jq -r '.response')

texto_generado_sin_comillas='eco "$texto_generado" | sed 's/\"//g'`

# Manda a Telegram
/usr/bin/curl -X POST -H "Tipo de conteúdo: aplicativo/json" -d '{
  "chat_id": "ID_CHAT_TELEGRAM",
  "Texto": "'"$texto_generado_sin_comillas"'"
}' "https (em inglês)://api.telegram.org/botTOKEN_BOT_TELEGRAM/sendMessage"

# Alerta en la Raspberry Pi con Piper por los altavoces
ssh pi@DIRECCION_IP_RASPBERRYPI "sudo /home/pi/piper/alerta_piper.sh \"$texto_generado_sin_comillas\""

¡Y chimpún! Ya lo tenemos listo, script criado e quem tiver dúvidas tem nos posts anteriores todos os dados que precisa para criar o Comando, registre-o no Centreon, Monte a IA local segura da Ollama, Centro de Equitação…

Como sempre e por ser muito original, Espero que você tenha achado interessante, que você pode aplicá-lo a outros tipos de tecnologias, Idéias… A verdade é que Piper e Ollama em minha casa com Home Assistant são totalmente necessários, Dê-lhe um toque original, Agora podemos começar a chamá-lo pouco a pouco de casa inteligente… Mas isso, em outros posts, vamos ver!

Abraços, Comporte-se bem!

Postagens recomendadas

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Não hesite em contactar-me, Vou tentar ajudá-lo sempre que puder, Compartilhar é viver ;) . Desfrute de documentos!!!