110 lines
3.6 KiB
Python
Executable File
110 lines
3.6 KiB
Python
Executable File
# Teste comparativo: Todas as vozes OpenAI + truques PT-PT
|
|
# pip install openai
|
|
|
|
import os
|
|
from openai import OpenAI
|
|
from pathlib import Path
|
|
|
|
def test_all_openai_voices():
|
|
"""
|
|
Testa todas as vozes do OpenAI para encontrar a mais PT-PT
|
|
"""
|
|
client = OpenAI(
|
|
api_key=os.environ.get("OPENAI_API_KEY")
|
|
)
|
|
|
|
# Texto teste com palavras que revelam sotaque
|
|
texto_teste = """Olá, bem-vindos à Descomplicar. Somos uma agência portuguesa especializada em marketing digital.
|
|
|
|
Ajudamos empresas a crescer através de estratégias digitais eficazes.
|
|
|
|
O nosso website está disponível em www.descomplicar.pt e oferecemos serviços de consultoria, criação de sites e gestão de redes sociais."""
|
|
|
|
vozes = ["alloy", "echo", "fable", "onyx", "nova", "shimmer"]
|
|
|
|
print("🧪 Testando todas as vozes OpenAI para PT-PT...")
|
|
print("=" * 60)
|
|
|
|
for voz in vozes:
|
|
print(f"🎤 Testando voz: {voz}")
|
|
|
|
try:
|
|
response = client.audio.speech.create(
|
|
model="tts-1-hd",
|
|
voice=voz,
|
|
input=texto_teste,
|
|
response_format="mp3"
|
|
)
|
|
|
|
speech_file_path = Path(f"teste_voz_{voz}.mp3")
|
|
with open(speech_file_path, "wb") as f:
|
|
f.write(response.content)
|
|
|
|
print(f"✅ Gerado: {speech_file_path}")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Erro com voz {voz}: {e}")
|
|
|
|
print("\n🎧 Ouve todos os ficheiros para comparar qual soa mais PT-PT")
|
|
|
|
def test_ptpt_tricks():
|
|
"""
|
|
Testa vários truques para forçar PT-PT
|
|
"""
|
|
client = OpenAI(
|
|
api_key=os.environ.get("OPENAI_API_KEY")
|
|
)
|
|
|
|
textos = {
|
|
"normal": "Olá, bem-vindos à Descomplicar, a vossa agência de marketing digital.",
|
|
|
|
"com_indicacao": "[Português Europeu] Olá, bem-vindos à Descomplicar, a vossa agência de marketing digital.",
|
|
|
|
"ortografia_ptpt": "Olá, bem-vindos à Descomplicar. Actualizamos constantemente os nossos métodos de optimização.",
|
|
|
|
"vocabulario_ptpt": "Olá, bem-vindos à Descomplicar. Criamos sítios web e ecrãs optimizados para telemóveis.",
|
|
|
|
"formal_ptpt": "Vossa Excelência, bem-vindos à Descomplicar. Prestamos serviços de consultoria em marketing digital."
|
|
}
|
|
|
|
print("🇵🇹 Testando truques para PT-PT...")
|
|
print("=" * 40)
|
|
|
|
for nome, texto in textos.items():
|
|
print(f"📝 Teste: {nome}")
|
|
|
|
try:
|
|
response = client.audio.speech.create(
|
|
model="tts-1-hd",
|
|
voice="nova", # Voz mais neutra
|
|
input=texto,
|
|
response_format="mp3"
|
|
)
|
|
|
|
speech_file_path = Path(f"ptpt_trick_{nome}.mp3")
|
|
with open(speech_file_path, "wb") as f:
|
|
f.write(response.content)
|
|
|
|
print(f"✅ Gerado: {speech_file_path}")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Erro: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
if not os.environ.get("OPENAI_API_KEY"):
|
|
print("❌ OPENAI_API_KEY não configurada!")
|
|
exit(1)
|
|
|
|
print("🔬 Teste Comparativo OpenAI TTS - PT-PT vs PT-BR")
|
|
print("=" * 55)
|
|
|
|
escolha = input("Testar: (v)ozes diferentes ou (t)ruques PT-PT? [v/t]: ").lower()
|
|
|
|
if escolha == 't':
|
|
test_ptpt_tricks()
|
|
else:
|
|
test_all_openai_voices()
|
|
|
|
print("\n🎯 Conclusão: Compara os ficheiros MP3 gerados!")
|
|
print("💡 Se nenhum soar PT-PT, confirma que precisamos de outra solução")
|