none
Problemas para converter WAV/MP3 para FLAC RRS feed

  • Pergunta

  • Olá,

    Ultimamente venho estudando algumas API para meu projeto de IA. Iniciei o mesmo com a ideia de reconhecimento de voz. Inicialmente tentei fazer o uso da API da Microsoft Speech e não obtive sucesso pois descobri que a Microsoft apenas disponibiliza Speech Recognition para algumas linguagens.

    Após estar ciente disto, tive que partir para a única solução mais plausível, usar a API do Google Speech, que iria fazer uma requisição HTTP enviando o arquivo de áudio e tendo como retorno o reconhecimento de voz, ou seja, o texto da fala. Logo, ao ler a documentação, vi que esta API do Google só aceita arquivos no formato .flac, onde eu teria que converter meu áudio para .flac, e ai é que está o grande problema. Sou iniciante em C# e ao pesquisar na internet só achei projetos gringos de conversão para .flac e tive muitos problemas de interpretação.

    Gostaria de saber se alguém poderia me ajudar a entender esta conversão ou que me passe algum tutorial. Obrigado desde já.

    domingo, 25 de outubro de 2015 18:59

Respostas

  • Olá Marcos, obrigado pela resposta. Realmente inglês não é totalmente meu forte, apesar de seguir os conceitos de engenharia e software e todos meus códigos estarem em inglês, sempre ando com o bom e velho Google Translator sempre ao meu lado. Claro que falha alguma vez e outra na conversão de verbos, mas isto não é problema, meu nível de inglês não chega a ser tão robusto assim hehehe. Foi uma pena não ter obtido uma resposta nesta Broad do fórum...

    Contudo, de tanta insistência no assunto, consegui fazer a conversão, e com sucesso absoluto consegui fazer o HTTP Request do Google API.

    Para quem enfrentou o mesmo problema, eu utilizei o conversor de linha de comando ffmpeg(https://www.ffmpeg.org/), que por sua vez tem a documentação traduzida em português e pode ser encontrada através deste link(https://szaszak.files.wordpress.com/2008/08/ffmpeg_traduzido_rev_14736.pdf). Se você estiver a utilizar o mesmo API, verás que há alguns requisitos para o arquivo final .flac a ser enviado (Você pode ver o resto das requisições através deste link[https://github.com/gillesdemey/google-speech-v2]):

    Channels       : 2
    Sample Rate    : 44100
    Precision      : 32-bit
    Sample Encoding: 32-bit Float

    Para seguir estes requisitos, utilizei os seguintes parâmetros:

    ffmpeg -i record.wav -ac 2 -ar 44100 -ab 32k record.flac

    Espero ter ajudado alguém com o mesmo problema, obrigado.


    • Marcado como Resposta BrunoTravi terça-feira, 27 de outubro de 2015 16:51
    • Editado BrunoTravi domingo, 1 de novembro de 2015 22:21 Links inseridos
    terça-feira, 27 de outubro de 2015 16:51

Todas as Respostas

  • Bom dia BrunoTravi,

    Infelizmente ainda não há muita coisa em português quando se trata de programação, por isso é um requisito básico saber falar a língua para programar. Eu diria que 85% das respostas que compartilho aqui são oriundas de materiais em inglês. Então basicamente a minha ajuda seria baseada no que você já leu e não compreendeu. Vou deixar sua thread aberta para que algum outro usuário com experiência no assunto possa fazer um tutorial para você ou te auxiliar da maneira como for possível.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 26 de outubro de 2015 12:51
  • Olá Marcos, obrigado pela resposta. Realmente inglês não é totalmente meu forte, apesar de seguir os conceitos de engenharia e software e todos meus códigos estarem em inglês, sempre ando com o bom e velho Google Translator sempre ao meu lado. Claro que falha alguma vez e outra na conversão de verbos, mas isto não é problema, meu nível de inglês não chega a ser tão robusto assim hehehe. Foi uma pena não ter obtido uma resposta nesta Broad do fórum...

    Contudo, de tanta insistência no assunto, consegui fazer a conversão, e com sucesso absoluto consegui fazer o HTTP Request do Google API.

    Para quem enfrentou o mesmo problema, eu utilizei o conversor de linha de comando ffmpeg(https://www.ffmpeg.org/), que por sua vez tem a documentação traduzida em português e pode ser encontrada através deste link(https://szaszak.files.wordpress.com/2008/08/ffmpeg_traduzido_rev_14736.pdf). Se você estiver a utilizar o mesmo API, verás que há alguns requisitos para o arquivo final .flac a ser enviado (Você pode ver o resto das requisições através deste link[https://github.com/gillesdemey/google-speech-v2]):

    Channels       : 2
    Sample Rate    : 44100
    Precision      : 32-bit
    Sample Encoding: 32-bit Float

    Para seguir estes requisitos, utilizei os seguintes parâmetros:

    ffmpeg -i record.wav -ac 2 -ar 44100 -ab 32k record.flac

    Espero ter ajudado alguém com o mesmo problema, obrigado.


    • Marcado como Resposta BrunoTravi terça-feira, 27 de outubro de 2015 16:51
    • Editado BrunoTravi domingo, 1 de novembro de 2015 22:21 Links inseridos
    terça-feira, 27 de outubro de 2015 16:51