Estou tentando implementar reconhecimento de voz constante no meu Pi no momento, estou conseguindo isso com dois threads em execução, um sempre gravando (com arecord
em um script bash) por X quantidade de segundos, salvando essas informações para um WAV e, em seguida, reiniciando, cada vez que este WAV é escrito o outro segmento executa o reconhecimento no arquivo WAV.
Isso está funcionando muito bem, no entanto, se por acaso a sentença do usuário é cortada e iniciada novamente no próximo loop de gravação, a sentença fica fragmentada entre dois resultados de reconhecimento.
Minha pergunta é:
Existe uma maneira de garantir que arecord
grava até que o nível de som caia abaixo de um certo limite, de modo que toda a sentença seja capturada na gravação e, depois que o usuário parar de falar por alguns segundos, a gravação será interrompida?
(Estou usando o Python para tudo isso btw)
Além disso, se houver uma maneira melhor de resolver esse problema, estou aberto a sugestões, sou relativamente novo no Pi, então não sou muito versado em todas as coisas maravilhosas que ele pode alcançar.