Como converter áudio em texto usando OpenIA

Publicado por Fábio Berbert de Paula em 04/03/2023

[ Hits: 3.016 ]

Blog: https://mestrefabio.com

 


Como converter áudio em texto usando OpenIA



Dica simples de como transformar um áudio em texto usando a API da OpenAI.

Primeiramente, você precisa de uma API key. Para isso, acesse o site da OpenAI e crie uma conta. Em seguida acesse suas API keys, clique em:

Create new secret key

copie a chave gerada e salve em algum lugar seguro.

Em seguida exporte a chave para uma variável de ambiente:

export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Agora basta fazer um POST para a API da OpenAI com o arquivo de áudio e o modelo de transcrição que você deseja usar. No exemplo abaixo, estou usando o modelo whisper-1, que é o modelo de transcrição de voz em ambiente silencioso.

curl -s https://api.openai.com/v1/audio/transcriptions \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H 'Content-Type: multipart/form-data' \
  -F file=@/home/fabio/mp3/luiza-banho.mp3 \
  -F model=whisper-1


O resultado será algo como:

{"text":"Luiza, tomar banho!"}

Se quiser extrair o texto do JSON, basta usar o comando jq:

jq -r '.text' <<< '{"text":"Luiza, tomar banho!"}'

Logo, o comando completo ficaria:

curl -s https://api.openai.com/v1/audio/transcriptions \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H 'Content-Type: multipart/form-data' \
  -F file=@/home/fabio/mp3/luiza-banho.mp3 \
  -F model=whisper-1 | jq -r '.text'


E claro, não se esqueça de alterar o caminho do arquivo de áudio do exemplo acima.

Podemos ainda converter o comando acima em script, que recebe o arquivo de áudio como parâmetro:

vim ~/.local/bin/audio2text

#!/bin/bash

# variábel de ambiente OPENAI_API_KEY é requerida, 
# declare-a em ~/.bashrc

AUDIO_FILE=$1
curl -s https://api.openai.com/v1/audio/transcriptions \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H 'Content-Type: multipart/form-data' \
  -F file=@$AUDIO_FILE \
  -F model=whisper-1 | jq -r '.text'

chmod +x ~/.local/bin/audio2text
$ audio2text /home/fabio/mp3/luiza-banho.mp3

Luiza, tomar banho!

Até a próxima!

Outras dicas deste autor

Erro: Python - invalid command 'bdist_wheel' [Resolvido]

Auto indentar linhas selecionadas no Vim

PHP: Substituindo somente a primeira ocorrência de uma palavra na string

Como reproduzir áudio no Android via linha de comando

Como gravar imagem ISO em DVD via linha de comando

Leitura recomendada

STDPRN para GCC

Instalar Firefox 3.6 e Thunderbird 3.0 no Ubuntu 9.10

Usando NTPDATE para manter a hora certa do seu Linuxbox

Instalando ownCloud no Fedora 21

Habilitando teclas "Control+Alt+Backspace" para reiniciar servidor X

  

Comentários
[1] Comentário enviado por removido em 04/03/2023 - 08:38h

Cara, excelente dica! Não sabia que tinha esse recurso no próprio OpenAI!

Eu estava usando o Assembly AI para fazer a mesma coisa em um projeto, só que a transcrição em PT-BR deles é ruim e já estava migrando para outra API (Deepgram)!

Sabe me dizer se dá para fazer o oposto também (texto para áudio)?

[2] Comentário enviado por SamL em 04/03/2023 - 14:06h

Porra, Fábio foi ligeiro, eu tava criando um artigo sobre o tal VALL-E para justamente criar voz sintetizada via texto.
Achei uma versão free do sintetizador no github e tava estudando ele como colocar pra gerar vozes a partir de uma amostra de áudio.

Mas vai ficar pra depois hahaha


https://nerdki.blogspot.com/ acessa ai, é grátis
Não gostou? O ícone da casinha é serventia do site!

[3] Comentário enviado por SamL em 04/03/2023 - 14:08h


[2] Comentário enviado por SamL em 04/03/2023 - 14:06h

Porra, Fábio foi ligeiro, eu tava criando um artigo sobre o tal VALL-E para justamente criar voz sintetizada via texto.

Confundi as bolas, na verdade o VALL-E sintetiza voz, enquanto tua dica gera texto do áudio.
Well, we vai continuar the article. hahhaa

[4] Comentário enviado por fabio em 06/03/2023 - 03:20h


[1] Comentário enviado por ru4n em 04/03/2023 - 08:38h

Cara, excelente dica! Não sabia que tinha esse recurso no próprio OpenAI!

Eu estava usando o Assembly AI para fazer a mesma coisa em um projeto, só que a transcrição em PT-BR deles é ruim e já estava migrando para outra API (Deepgram)!

Sabe me dizer se dá para fazer o oposto também (texto para áudio)?



As principais ferramentas de mercado que fazem isso em 2023 estão listadas aqui: https://www.unite.ai/best-text-to-speech-generators/

[5] Comentário enviado por fabio em 06/03/2023 - 03:21h


[2] Comentário enviado por SamL em 04/03/2023 - 14:06h

Porra, Fábio foi ligeiro, eu tava criando um artigo sobre o tal VALL-E para justamente criar voz sintetizada via texto.
Achei uma versão free do sintetizador no github e tava estudando ele como colocar pra gerar vozes a partir de uma amostra de áudio.

Mas vai ficar pra depois hahaha


https://nerdki.blogspot.com/ acessa ai, é grátis
Não gostou? O ícone da casinha é serventia do site!


Não conheço esse VALL-E, aguardando o artigo ansiosamente!!!

[6] Comentário enviado por maurixnovatrento em 12/03/2023 - 10:55h


transformar áudio em texto usando open-ai dá pra usar isso no c++?

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10

[7] Comentário enviado por fabio em 14/03/2023 - 12:23h


transformar áudio em texto usando open-ai dá pra usar isso no c++?


Não programo em C++, mas teoricamente é possível fazer isso em qualquer linguagem. Basta pegar os parâmetros passados pelo comando curl e adaptá-los a uma HTTP Request em C++ e depois tratar a resposta. Você basicamente usará a API da OpenAI em seu código.

[8] Comentário enviado por maurixnovatrento em 18/03/2023 - 16:59h


[7] Comentário enviado por fabio em 14/03/2023 - 12:23h


transformar áudio em texto usando open-ai dá pra usar isso no c++?


Não programo em C++, mas teoricamente é possível fazer isso em qualquer linguagem. Basta pegar os parâmetros passados pelo comando curl e adaptá-los a uma HTTP Request em C++ e depois tratar a resposta. Você basicamente usará a API da OpenAI em seu código.



Pode ser. Mas se tiver uma biblioteca para o c/c++, pra mim seria melhor.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts