Passo 1: Preparando o Ambiente de Desenvolvimento
Para começar, você precisará configurar um ambiente de desenvolvimento Python. Certifique-se de ter o Python instalado em sua máquina. Em seguida, crie um ambiente virtual para isolar as dependências do seu projeto. Isso pode ser feito usando o venv
ou conda
.
Isso evita conflitos com outras instalações de pacotes.
-
Crie um ambiente virtual:
- Usando
venv
: python -m venv nome_do_ambiente
- Usando
conda
: conda create -n nome_do_ambiente python=3.9
-
Ative o ambiente virtual:
- No Windows:
nome_do_ambiente\Scripts\activate
- No macOS e Linux:
source nome_do_ambiente/bin/activate
-
Instale as dependências necessárias:
pip install openai
pip install python-dotenv
pip install flask
(se você for usar Flask para criar uma interface web)
Esses passos garantem que você tenha um ambiente limpo e consistente para trabalhar.
Passo 2: Autenticação na OpenAI
Para usar a API da OpenAI, você precisará de uma chave de API. Crie uma conta na OpenAI e gere sua chave. Em seguida, armazene essa chave em um arquivo .env
para mantê-la segura e separada do seu código.
- Crie um arquivo
.env
na raiz do seu projeto.
-
Adicione a chave da API ao arquivo:
OPENAI_API_KEY=sua_chave_api
-
Carregue a chave da API em seu script Python:
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv('OPENAI_API_KEY')
Isso garante que sua chave de API seja carregada de forma segura e utilizada para autenticar suas chamadas à API da OpenAI.
Passo 3: Transcrevendo Áudio com o Whisper
Agora que você configurou o ambiente e autenticou, pode começar a usar o Whisper para transcrever áudio. O processo envolve carregar o arquivo de áudio e usar a API da OpenAI para obter a transcrição.
-
Carregue o arquivo de áudio:
audio_file = open("audio.mp3", "rb")
-
Transcreva o áudio usando o Whisper:
transcript = openai.Audio.Translate("whisper-1", audio_file)
print(transcript["text"])
Este código abre o arquivo de áudio e usa o modelo Whisper para gerar a transcrição. A transcrição é então impressa no console.
Passo 4: Traduzindo a Transcrição (Opcional)
Se você precisar traduzir a transcrição para outro idioma, pode usar o modelo GPT da OpenAI para essa tarefa. Primeiro, obtenha a transcrição do áudio e, em seguida, use o GPT para traduzi-la.
-
Obtenha a transcrição:
transcript = openai.Audio.translate("whisper-1", audio_file)
-
Use o GPT para traduzir a transcrição:
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": f"You will be provided with a sentence in English, and your task is to translate it into Portuguese."},
{"role": "user", "content": transcript["text"]}
],
temperature=0,
max_tokens=256
)
print(response["choices"][0]["message"]["content"])
Este código usa o GPT-4 para traduzir a transcrição para português. Você pode ajustar o idioma de destino conforme necessário.
Passo 5: Criando uma Interface Web com Flask (Opcional)
Para tornar seu projeto mais acessível, você pode criar uma interface web usando o Flask. Isso permitirá que os usuários carreguem arquivos de áudio e obtenham as transcrições e traduções diretamente no navegador.
- Crie um arquivo
app.py
:
-
Importe as bibliotecas necessárias:
from flask import Flask, request, jsonify, render_template
import openai
import os
from dotenv import load_dotenv
-
Configure o Flask:
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'static'
load_dotenv()
openai.api_key = os.getenv('OPENAI_API_KEY')
-
Defina as rotas para upload e processamento:
@app.route('/', methods=['GET', 'POST'])
def main():
if request.method == 'POST':
audio_file = request.files['file']
filename = audio_file.filename
audio_file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
transcript = openai.Audio.translate("whisper-1", open(f"static/{filename}", "rb"))
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": f"You will be provided with a sentence in English, and your task is to translate it into Portuguese."},
{"role": "user", "content": transcript["text"]}
],
temperature=0,
max_tokens=256
)
return jsonify(translation=response["choices"][0]["message"]["content"])
return render_template('index.html')
-
Crie um arquivo index.html
no diretório templates
:
<!DOCTYPE html>
<html>
<head>
<title>Upload de Áudio</title>
</head>
<body>
<h1>Upload de Áudio</h1>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
</body>
</html>
Esses passos criam uma interface web simples para upload e processamento de áudio.