Como acompanhamento da minha pergunta anterior, eu queria saber se existem bibliotecas de detecção de fala existentes. Por detecção de fala, quero dizer passar em um buffer de áudio e recuperar um índice de onde a fala começa e para. Portanto, se eu tiver 10 segundos de amostragem de áudio a 44kHz, esperaria uma matriz de números como:
44000
88000
123000
190334
...
Isso indicaria, por exemplo, que a fala começa um segundo e depois termina no ponto de dois segundos, etc.
O que não estou procurando é o reconhecimento de fala, que grava o texto da palavra falada. Infelizmente, é isso que vejo muito quando pesquiso no Google 'detecção de fala'.
Seria ótimo se a biblioteca estivesse em C, C ++ ou até Objective-C, pois estou escrevendo um aplicativo para o iPhone.
Obrigado!
Respostas:
Na minha resposta à sua pergunta, mencionei que a Detecção de atividade de voz é um recurso padrão para codecs como G.729 e outros.
Você deve procurar por codificadores e decodificadores de referência para algoritmos que apliquem isso.
Um exemplo é - http://www.voiceage.com/openinit_g729.php
Outra fonte possível é o codec Speex. O que implementa o VAD
BTW: você deve pesquisar no Google "Voice Activity Detection" ou "Talk Spurt" em vez de "Speech Detection".
fonte
Existem implementações de código aberto nos projetos Sphinx e Freeswitch. Eu acho que todos eles são detectores baseados em energia e não precisam de nenhum modelo.
Sphinx 4 (Java, mas deve ser fácil portar para C / C ++)
PocketSphinx
Freeswitch
Resposta retirada da pergunta Stackoverflow .
fonte
A detecção de atividade de voz usando o limiar adaptável é muito fácil e prática de implementar em qualquer plataforma
Aqui você pode ter um algoritmo baseado em energia adaptativa
Uma pequena adição ao algoritmo acima, quando você está calculando pela primeira vez, deve usar Mean of Energy e marcar como Emin
Neste, o quadro que você passa é dividido em sub-quadros e, além disso, você pode examinar cada sub-quadro para verificar sua atividade.
você pode superar outros problemas com quadros sobrepostos
fonte
E o LibVAD?
Parece que faz exatamente o que você está descrevendo.
Divulgação: Eu sou o desenvolvedor por trás do LibVAD
fonte