Pular para o conteúdo

Como converter áudio em texto usando OpenIA

Dica publicada em Inteligência Artificial / Introdução
Fábio Berbert de Paula fabio
Hits: 4.699 Categoria: Inteligência Artificial Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

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!

Forçando quebra de linha em tabelas HTML usando PHP

Instalar MongoDB 4.4 no Debian 10 Buster

Alterando nome de placa de rede FÁCIL usando arquivos de LINK

Como criar um pendrive bootável de qualquer Linux

Descubra o 0 A.D. - jogo de estratégia no estilo Age of Empires

Como saber o range de um IP público?

As melhores alternativas entre as IAs Generativas gratuitas para gerar código para Robots em bolsas de valores no mercado doméstico

Kubernetes, amplo material completo da CNCF com ferramentas e suas instalações, incluindo suporte à OpenAPI

Novidades na ultima atualização do MetaTrader 5 - agora com IA

Usando Inteligência Artificial Generativa para desenvolver automatização de execução de estratégias (robots) para operar em bolsa de valores

#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

Entre na sua conta para comentar.