""" elevenlabs_tts.py Author: Descomplicar® Crescimento Digital Link: https://descomplicar.pt Copyright: 2025 Descomplicar® """ # ElevenLabs TTS Generator for Descomplicar (PT-PT) # pip install elevenlabs import os from elevenlabs import ElevenLabs, VoiceSettings from pathlib import Path def generate_audio_elevenlabs(): """ Gera áudio usando ElevenLabs com voz PT-PT """ # Configurar cliente ElevenLabs client = ElevenLabs( api_key=os.environ.get("ELEVENLABS_API_KEY") ) # Texto do artigo de Marketing Digital da Descomplicar texto_marketing = """Bem-vindo à Descomplicar, a agência de aceleração digital que transforma a sua presença online numa máquina de crescimento. Somos especialistas em Marketing Digital, criação de websites profissionais e estratégias que geram resultados reais para o seu negócio. Na Descomplicar, a nossa filosofia é simples: tornar o complexo mais simples. Descomplicamos o marketing digital para que você se possa focar no que faz melhor - gerir o seu negócio. No século 21, o mercado já não é um lugar físico; é um ecossistema digital em constante evolução. Os seus clientes não estão apenas a passar à porta da sua loja; estão a pesquisar no Google, a pedir recomendações no Facebook, a descobrir marcas no Instagram e a procurar especialistas no LinkedIn.""" print("🎙️ Iniciando geração de áudio com ElevenLabs (PT-PT)...") print(f"📝 Texto tem {len(texto_marketing)} caracteres") try: # Usar voz feminina em português europeu audio = client.generate( text=texto_marketing, voice="Alice", # Voz feminina natural voice_settings=VoiceSettings( stability=0.5, similarity_boost=0.8, style=0.2, use_speaker_boost=True ), model="eleven_multilingual_v2" ) # Salvar o áudio speech_file_path = Path("descomplicar_pt_pt.mp3") with open(speech_file_path, "wb") as f: for chunk in audio: f.write(chunk) print(f"✅ Áudio PT-PT gerado: {speech_file_path}") print(f"📁 Ficheiro salvo em: {speech_file_path.absolute()}") return True except Exception as e: print(f"❌ Erro ao gerar áudio: {e}") print("💡 Sugestão: Verifique se tem ELEVENLABS_API_KEY configurada") return False def list_voices(): """ Lista vozes disponíveis do ElevenLabs """ try: client = ElevenLabs( api_key=os.environ.get("ELEVENLABS_API_KEY") ) voices = client.voices.get_all() print("🎤 Vozes disponíveis no ElevenLabs:") print("=" * 50) for voice in voices.voices: print(f"Nome: {voice.name}") print(f"ID: {voice.voice_id}") print(f"Categoria: {voice.category}") if hasattr(voice, 'accent'): print(f"Sotaque: {voice.accent}") print("-" * 30) except Exception as e: print(f"❌ Erro ao listar vozes: {e}") if __name__ == "__main__": # Verificar se API key está configurada if not os.environ.get("ELEVENLABS_API_KEY"): print("❌ ELEVENLABS_API_KEY não configurada!") print("🔗 Obtenha uma chave gratuita em: https://elevenlabs.io/") print("⚙️ Configure com: export ELEVENLABS_API_KEY='sua_chave'") exit(1) print("🇵🇹 Gerador de Voz ElevenLabs PT-PT - Descomplicar") print("=" * 55) # Escolher ação escolha = input("Escolha: (g)erar áudio, (l)istar vozes? [g/l]: ").lower() if escolha == 'l': list_voices() else: generate_audio_elevenlabs() print("\n🎵 Use vozes portuguesas autênticas!")