
Whisper é um modelo de reconhecimento automático de fala, de uso geral, treinado em um grande conjunto de dados de áudio. Ele é capaz de fazer transcrição multilíngue, tradução de fala e detecção de idioma.
Você pode usar o Whisper como assistente de voz, chatbot, para traduzir fala para o inglês, automatizar anotações de reuniões e para transcrições.
Transcrição é o processo de converter linguagem falada em texto. Antes era feito manualmente; agora temos ferramentas com IA, como o Whisper, que entendem a fala com precisão.
Se você tem noções básicas de Python, consegue integrar a OpenAI Whisper API ao seu aplicativo. A API do Whisper faz parte do openai/openai-python, que dá acesso a diversos serviços e modelos da OpenAI.
Saiba mais sobre como criar aplicações de IA com LangChain no nosso Building Multimodal AI Applications with LangChain & the OpenAI API AI Code Along, onde você vai descobrir como transcrever conteúdos de vídeos do YouTube com a IA de speech-to-text Whisper e depois usar o GPT para fazer perguntas sobre o conteúdo.
Quais são bons casos de uso para transcrição?
- Transcrever entrevistas, reuniões, aulas e podcasts para análise, acesso fácil e registro.
- Transcrição de fala em tempo real para legendas (YouTube), closed caption (reuniões no Zoom) e tradução da fala.
- Transcrição de voz para uso pessoal e profissional: notas de voz, mensagens, lembretes, memorandos e feedback.
- Transcrição para pessoas com deficiência auditiva.
- Transcrição para aplicativos baseados em voz que exigem entrada de texto. Por exemplo, chatbots, assistentes de voz e tradução de idiomas.
Quais idiomas são compatíveis?
Idiomas compatíveis para transcrições e traduções pela OpenAI Whisper API:
Africâner, árabe, armênio, azerbaijano, bielorrusso, bósnio, búlgaro, catalão, chinês, croata, tcheco, dinamarquês, holandês, inglês, estoniano, finlandês, francês, galego, alemão, grego, hebraico, hindi, húngaro, islandês, indonésio, italiano, japonês, canarês, cazaque, coreano, letão, lituano, macedônio, malaio, marata, maori, nepali, norueguês, persa, polonês, português, romeno, russo, sérvio, eslovaco, esloveno, espanhol, suaíli, sueco, tagalo, tâmil, tailandês, turco, ucraniano, urdu, vietnamita e galês.
A figura abaixo apresenta a taxa de erro de palavras (WER) no conjunto de dados Fleur usando o modelo large-v2, por idioma. Quanto menor o WER, melhor a precisão da transcrição.

Quais formatos de arquivo são compatíveis?
Os formatos de arquivo compatíveis com a Whisper API são mp3, mp4, mpeg, mpga, m4a, wav e webm. No momento, o upload está limitado a 25 MB. Se você tiver arquivos maiores, pode dividi-los em partes menores usando pydub.
Speech to text com a OpenAI API
Nesta seção, vamos usar a OpenAI API para transcrição e tradução. Além disso, veremos diferentes formatos de saída.
Configuração
Você pode instalar a OpenAI Python API usando o pip.
pip install openai
Depois, gere as chaves de API acessando a página da OpenAI API, clicando na sua foto e selecionando a opção "View API keys". Todas as contas novas da OpenAI vêm com US$ 5 em créditos gratuitos, então não é preciso adicionar cartão de crédito.

Em seguida, clique em “Create new security key”, dê um nome e copie a chave gerada.

Configure sua chave de API com uma variável de ambiente
Você pode configurar a chave de API no seu sistema local digitando o comando abaixo no terminal. Isso cria uma variável de ambiente para usar os serviços da OpenAI.
export OPENAI_API_KEY='sk-...kMEM'
Configure sua chave de API usando o pacote da OpenAI
Você também pode definir a chave dentro do seu programa Python, usando openai.api_key. Esse método não é recomendado, pois expõe sua chave publicamente.
import openai
openai.api_key = "sk-...kMEM"
Configure sua chave de API facilmente no DataLab
Se você usa o DataLab, clique em Environment > no ícone de ‘mais’ e preencha os nomes e valores das suas variáveis de ambiente.

Depois, ative a variável de ambiente clicando no botão Connect.

Conjunto de dados
Inglês
Vamos usar um trecho do entrevista de Marvin Minsky sobre IA no YouTube e convertê-lo em áudio. O arquivo marvin_minsky.mp3 tem um minuto de duração e 970 KB.
Espanhol
Recortamos um pequeno trecho do vídeo em espanhol How Are People in Barcelona Using AI? no YouTube para criar o arquivo Easy_spanish_315.mp3. Ele tem 509 KB e 20 segundos de duração.
Transcrições em inglês
A API de transcrições é direta. Basta carregar o arquivo de áudio com a instrução with e passar o objeto de áudio para openai.Audio.transcribe. A função transcribe exige apenas o nome do modelo e o áudio, mas você pode informar o parâmetro language para melhorar a precisão.
import openai
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(transcript)
of theories called Steps Toward Artificial Intelligence around 1970. That sort of charted several possible lines of research, which pretty much predicted what several communities of researchers would do in the next 20 years. Those predictions started to fall apart around--so that paper was 1970, roughly. By the late 1980s, the world had changed. It was interesting because when I started research in that general area, almost all of my students soon became professors.
Dê uma olhada no cheat sheet da OpenAI API em Python para revisar rapidamente o que cada função faz. Você pode usar o cheat sheet para conhecer vários comandos da OpenAI API para geração de texto, transcrição de fala, geração de imagens, embedding e mais.
Formatos de saída alternativos
No exemplo anterior, definimos o formato de resposta como texto simples, mas você pode alterá-lo para legendas SubRip (response_format="srt"), legendas de trilha de texto de vídeo (response_format="vtt") e metadados (response_format="verbose_json").
Nos exemplos a seguir, vamos mudar o response_format para “srt” para gerar legendas como saída.
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript2 = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="srt",
language="en"
)
print(transcript2)
Como podemos ver, o texto de saída é dividido por carimbo de tempo.
1
00:00:00,000 --> 00:00:10,960
of theories called Steps Toward Artificial Intelligence around 1970.
2
00:00:10,960 --> 00:00:24,320
That sort of charted several possible lines of research, which pretty much predicted what
3
00:00:24,320 --> 00:00:31,920
several communities of researchers would do in the next 20 years.
4
00:00:31,920 --> 00:00:42,040
Those predictions started to fall apart around--so that paper was 1970, roughly.
5
00:00:42,040 --> 00:00:48,200
By the late 1980s, the world had changed.
6
00:00:48,200 --> 00:00:56,760
It was interesting because when I started research in that general area, almost all
7
00:00:56,760 --> 00:01:16,920
of my students soon became professors.
Transcrição em espanhol
O Whisper foi treinado em 98 idiomas, o que permite transcrever em várias línguas. Para isso, basta alterar o parâmetro language.
No nosso caso, estamos transcrevendo um áudio em espanhol e, portanto, definimos language="es"
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
transcript_es = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="es"
)
print(transcript_es)
¿Qué crees que es la inteligencia artificial? ¿Qué creo que es? Eh... no sé, no sé cómo describirlo. Algo que no es natural, obviamente. Eh... Pues la inteligencia artificial es mediante... mediante datos, eh... introducirle a un algoritmo.
Tradução do espanhol para o inglês
Você só pode traduzir seu áudio para transcrição em inglês.
No exemplo a seguir, vamos usar a função `translate` com um áudio em espanhol, e ela vai traduzir o áudio do espanhol para o inglês.
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
translate = openai.Audio.translate(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(translate)
What do you think artificial intelligence is? What do I think it is? I don't know how to describe it. Something that is not natural, obviously. Artificial intelligence is, through data, introduced to an algorithm.
Teste este exemplo acessando este workbook no DataLab. Ele já tem os arquivos de áudio e o código-fonte. Basta fazer uma cópia do workbook e configurar a variável de ambiente para funcionar.
Aproveite também o tutorial Using ChatGPT via the OpenAI API in the Python. Você vai aprender a usar a OpenAI API para chat completions com o modelo gpt-3.5-turbo.
Como melhorar a performance da transcrição?
Podemos melhorar a qualidade da transcrição usando um parâmetro de prompt. Ao fornecer uma transcrição parcial no argumento prompt, ajudamos o modelo a entender o estilo de escrita, pontuação, capitalização e ortografia.
Uma grande limitação do sistema atual de prompts é oferecer pouco controle sobre o texto gerado. Além disso, o processo de prompting não pode ser totalmente automatizado, já que envolve transcrever parte do áudio manualmente.
O que vem a seguir?
Você pode usar o código deste tutorial para criar um assistente de voz ou até um J.A.R.V.I.S., do Homem de Ferro. Para isso, é só definir a interface do usuário e combinar o Whisper, text-to-speech e a API do ChatGPT, como mostramos neste treinamento ao vivo.
Se você é novo no ChatGPT, faça o curso Introduction to ChatGPT para aprender boas práticas de prompts e transformar o ChatGPT em valor de negócio. E se quiser entender o GPT-4 e como funcionam os modelos generativos, leia What is GPT-4 and Why Does it Matter? Você também encontra mais recursos abaixo:



