init: scripts diversos (crawlers, conversores, scrapers)

This commit is contained in:
2026-03-05 20:38:36 +00:00
commit 6ac6f4be2a
925 changed files with 850330 additions and 0 deletions

6
tts-generator/.env.example Executable file
View File

@@ -0,0 +1,6 @@
# API Keys para Gerador de Voz
# Preencher as que pretender usar
GEMINI_API_KEY=your_gemini_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
ELEVENLABS_API_KEY=your_elevenlabs_api_key_here

7
tts-generator/.gitignore vendored Normal file
View File

@@ -0,0 +1,7 @@
.env
venv/
.venv/
*.mp3
*.wav
__pycache__/
*.pyc

74
tts-generator/README.md Executable file
View File

@@ -0,0 +1,74 @@
# Gerador de Voz com Google Gemini API
Este projeto converte texto para áudio usando a Google Gemini API com tecnologia Text-to-Speech.
## Pré-requisitos
### 1. Instalar Dependências
```bash
pip install google-genai
```
### 2. Configurar API Key
Criar ficheiro `.env` na pasta do projecto:
```bash
cp .env.example .env
# Editar .env com a chave real
```
### 3. Executar o Projeto
#### Opcao 1 - Execucao Automatica (Recomendado):
```bash
chmod +x run_gemini_tts.sh
./run_gemini_tts.sh
```
#### Opcao 2 - Execucao Manual:
```bash
source .env
pip install google-genai
python gemini_tts.py
```
## O que o script faz
1. **Conecta à Gemini API** usando a chave configurada
2. **Processa o texto** sobre Marketing Digital da Descomplicar
3. **Gera áudio** usando a voz "Autonoe"
4. **Guarda ficheiros** WAV no diretório atual
## Configurações do Áudio
- **Modelo**: gemini-2.5-pro-preview-tts
- **Voz**: Autonoe (feminina, natural)
- **Formato**: WAV (conversão automática)
- **Qualidade**: 16-bit, 24kHz
## Ficheiros Gerados
O script cria ficheiros com nomes do tipo:
- `marketing_digital_audio_0.wav`
- `marketing_digital_audio_1.wav`
- etc.
## Personalização
Para alterar o texto ou configurações:
1. **Texto**: Editar a variável `text` na função `generate()`
2. **Voz**: Alterar `voice_name` (opções disponíveis na documentação Gemini)
3. **Nome dos ficheiros**: Modificar `file_name` no loop principal
## Uso Prático
Este gerador é ideal para:
- Criar conteúdo para podcasts
- Melhorar acessibilidade de conteúdos
- Produzir narração para vídeos
- Gerar áudio para e-learning
## Suporte
Para questões técnicas ou melhorias, contactar a equipa da Descomplicar.

74
tts-generator/README_OPENAI.md Executable file
View File

@@ -0,0 +1,74 @@
# Gerador de Voz OpenAI TTS - Descomplicar
## 🎯 Configuração Automática OpenAI
Configurar API key no ficheiro `.env` antes de usar.
## Execucao
### **Opcao 1 - Script Automatico:**
```bash
chmod +x run_openai_tts.sh
./run_openai_tts.sh
```
### **Opcao 2 - Manual:**
```bash
source venv/bin/activate
source .env
pip install openai
python openai_tts.py
```
## 🎙️ Funcionalidades
### **Vozes Disponíveis:**
- **nova**: Feminina, natural (recomendada)
- **alloy**: Neutra
- **echo**: Masculina
- **fable**: Brit, masculina
- **onyx**: Masculina, profunda
- **shimmer**: Feminina, suave
### **Modelos:**
- **tts-1**: Rápido e eficiente
- **tts-1-hd**: Alta qualidade (recomendado)
### **Formatos:**
- **MP3**: Compacto (padrão)
- **WAV**: Sem compressão
- **FLAC**: Alta qualidade
## 📊 Vantagens OpenAI TTS
**Qualidade consistente**
**API estável e confiável**
**Sem problemas de quota complexos**
**Suporte excelente para português**
**Pricing transparente**
**Velocidade de processamento**
## 🎵 Ficheiros Gerados
- `descomplicar_teste.mp3` - Teste rápido
- `descomplicar_marketing_digital.mp3` - Áudio completo
## 💡 Uso no Projeto
Ideal para:
- **Podcasts** da Descomplicar
- **Conteúdo de redes sociais**
- **Narração de vídeos**
- **Acessibilidade** de artigos
- **Apresentações** automáticas
## ⚡ Execução Rápida
O script permite escolher:
- **(t)este** - Texto pequeno, geração rápida
- **(c)ompleto** - Artigo inteiro sobre Marketing Digital
**Execute agora:**
```bash
./run_openai_tts.sh
```

50
tts-generator/SETUP_UBUNTU.md Executable file
View File

@@ -0,0 +1,50 @@
# Setup rápido para resolver o problema do ambiente Python
## Problema
O teu sistema Ubuntu/Debian protege o ambiente Python global com `externally-managed-environment`.
## Solução Imediata
### Opção 1 - Script Automático com Ambiente Virtual (RECOMENDADO):
```bash
chmod +x run_gemini_tts_venv.sh
./run_gemini_tts_venv.sh
```
### Opção 2 - Manual com Ambiente Virtual:
```bash
# Criar e ativar ambiente virtual
python3 -m venv venv
source venv/bin/activate
# Instalar dependências
pip install google-genai
# Executar script
python gemini_tts.py
```
### Opção 3 - Instalar System-wide (não recomendado):
```bash
pip install google-genai --break-system-packages
python gemini_tts.py
```
### Opção 4 - Com pipx (se tiveres pipx instalado):
```bash
pipx install google-genai
python gemini_tts.py
```
## Solução Definitiva
O script `run_gemini_tts_venv.sh` resolve automaticamente:
- Cria ambiente virtual isolado
- Instala dependências sem conflitos
- Executa o gerador de voz
- Mantém tudo organizado
Execute apenas:
```bash
./run_gemini_tts_venv.sh
```

73
tts-generator/azure_tts_ptpt.py Executable file
View File

@@ -0,0 +1,73 @@
"""
azure_tts_ptpt.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Plano B: Azure Speech Services (Excelente PT-PT)
# pip install azure-cognitiveservices-speech
import azure.cognitiveservices.speech as speechsdk
import os
def generate_audio_azure():
"""
Gera áudio com Azure Speech (excelente PT-PT)
"""
# Configurar Azure Speech
speech_key = os.environ.get("AZURE_SPEECH_KEY")
service_region = "westeurope" # Região Europa para melhor PT-PT
# Configurar speech config
speech_config = speechsdk.SpeechConfig(
subscription=speech_key,
region=service_region
)
# Configurar voz PT-PT feminina
speech_config.speech_synthesis_voice_name = "pt-PT-FernandaNeural"
# Texto da Descomplicar
texto = """Bem-vindos à Descomplicar, a agência de aceleração digital que transforma a vossa 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 vosso negócio.
Na Descomplicar, a nossa filosofia é simples: tornar o complexo mais simples."""
# Configurar saída para ficheiro
audio_config = speechsdk.audio.AudioOutputConfig(
filename="descomplicar_azure_ptpt.wav"
)
# Criar sintetizador
synthesizer = speechsdk.SpeechSynthesizer(
speech_config=speech_config,
audio_config=audio_config
)
print("🇵🇹 Gerando áudio com Azure Speech PT-PT...")
try:
result = synthesizer.speak_text_async(texto).get()
if result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
print("✅ Áudio Azure PT-PT gerado: descomplicar_azure_ptpt.wav")
return True
else:
print(f"❌ Erro: {result.reason}")
return False
except Exception as e:
print(f"❌ Erro Azure: {e}")
return False
if __name__ == "__main__":
if not os.environ.get("AZURE_SPEECH_KEY"):
print("❌ AZURE_SPEECH_KEY não configurada!")
print("🔗 Obtenha grátis: https://portal.azure.com/")
print("💡 500.000 caracteres/mês gratuitos")
exit(1)
generate_audio_azure()

72
tts-generator/edge_tts_ptpt.py Executable file
View File

@@ -0,0 +1,72 @@
"""
edge_tts_ptpt.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Edge TTS - Gratuito e com excelente PT-PT
# pip install edge-tts
import asyncio
import edge_tts
async def generate_audio_edge():
"""
Gera áudio com Edge TTS (gratuito e PT-PT nativo)
"""
# Texto da Descomplicar
texto = """Bem-vindos à Descomplicar, a agência de aceleração digital que transforma a vossa 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 vosso negócio.
Na Descomplicar, a nossa filosofia é simples: tornar o complexo mais simples. Descomplicamos o marketing digital para que vós vos possais focar no que fazeis melhor - gerir o vosso negócio."""
# Voz portuguesa feminina
voz = "pt-PT-RaquelNeural" # Voz feminina PT-PT (corrigida)
print(f"🇵🇹 Gerando áudio com Edge TTS...")
print(f"🎤 Voz: {voz}")
try:
# Gerar áudio
communicate = edge_tts.Communicate(texto, voz)
await communicate.save("descomplicar_edge_ptpt.mp3")
print("✅ Áudio gerado: descomplicar_edge_ptpt.mp3")
print("🎯 100% gratuito, sotaque PT-PT autêntico!")
return True
except Exception as e:
print(f"❌ Erro: {e}")
return False
async def list_portuguese_voices():
"""
Lista todas as vozes portuguesas disponíveis
"""
print("🎤 Vozes portuguesas disponíveis no Edge TTS:")
print("=" * 50)
voices = await edge_tts.list_voices()
for voice in voices:
if voice["Locale"].startswith("pt-"):
print(f"Nome: {voice['ShortName']}")
print(f"Região: {voice['Locale']}")
print(f"Género: {voice['Gender']}")
print(f"Descrição: {voice['FriendlyName']}")
print("-" * 30)
async def main():
escolha = input("Escolha: (g)erar áudio ou (l)istar vozes? [g/l]: ").lower()
if escolha == 'l':
await list_portuguese_voices()
else:
await generate_audio_edge()
if __name__ == "__main__":
asyncio.run(main())

111
tts-generator/elevenlabs_tts.py Executable file
View File

@@ -0,0 +1,111 @@
"""
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!")

334
tts-generator/gemini_tts.py Executable file
View File

@@ -0,0 +1,334 @@
# To run this code you need to install the following dependencies:
# pip install google-genai
import base64
import mimetypes
import os
import re
import struct
from google import genai
from google.genai import types
def save_binary_file(file_name, data):
f = open(file_name, "wb")
f.write(data)
f.close()
print(f"File saved to to: {file_name}")
def generate():
client = genai.Client(
api_key=os.environ.get("GEMINI_API_KEY"),
)
model = "gemini-2.5-pro-preview-tts"
contents = [
types.Content(
role="user",
parts=[
types.Part.from_text(text="""A Estratégia Definitiva para Crescer 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. Neste novo paradigma, ter uma presença digital não é uma opção. É a base sobre a qual os negócios modernos são construídos e escalados. Bem-vindo ao universo do Marketing Digital.
Para muitas empresas em Portugal, o termo "Marketing Digital" pode parecer um labirinto complexo e intimidante de acrónimos (SEO, PPC, CRM), plataformas e táticas que mudam a uma velocidade vertiginosa. É fácil sentir-se sobrecarregado e não saber por onde começar, o que muitas vezes leva a ações descoordenadas um post aqui, um anúncio ali com poucos ou nenhuns resultados mensuráveis. O problema não está nas ferramentas, mas na ausência de uma estratégia coesa que as una.
Este guia é o seu mapa para esse labirinto. O nosso objetivo é desmistificar o Marketing Digital, transformando-o de uma coleção de táticas isoladas numa metodologia de crescimento integrada e compreensível. Vamos explorar cada pilar, desde a fundação estratégica até à execução tática e à medição do sucesso. Na Descomplicar, a nossa filosofia é que o marketing de sucesso não é sobre fazer tudo, mas sobre fazer as coisas certas, da forma certa, e na ordem certa.
Parte 1: A Revolução Digital Porque o Marketing Digital é o Novo Normal
Para dominar o presente, temos de compreender a mudança fundamental que nos trouxe até aqui.
A Mudança no Poder: Do Vendedor para o Consumidor
O marketing tradicional (Outbound) era baseado na interrupção. As empresas controlavam a mensagem e empurravam-na para o público através da TV, rádio e imprensa. Hoje, o poder mudou de mãos. O consumidor moderno, armado com um smartphone e acesso ilimitado à informação, está no controlo. Ele escolhe o que vê, quando vê e em quem confia. Dados do PORDATA mostram a penetração massiva da internet na sociedade portuguesa, solidificando esta nova realidade.
O Marketing Digital, na sua essência, é a resposta a esta mudança. É uma abordagem de "puxar" (pull), não de "empurrar" (push). Trata-se de criar valor e estar presente nos canais onde os seus clientes já estão a procurar ativamente por soluções.
As Vantagens Inegáveis do Marketing Digital
Mensurabilidade Precisa: Ao contrário de um anúncio num outdoor, cada euro investido no digital pode ser rastreado. Você sabe exatamente quantas pessoas viram o seu anúncio, clicaram nele e se tornaram clientes.
Segmentação Cirúrgica: Pode direcionar as suas mensagens para públicos extremamente específicos com base na sua demografia, interesses, comportamentos e até interações passadas com a sua marca.
Custo-Efetividade e ROI: Permite que PMEs compitam com grandes empresas, pois o sucesso não depende apenas do tamanho do orçamento, mas da inteligência da estratégia. O Retorno do Investimento (ROI) é claro e otimizável.
Agilidade e Flexibilidade: Pode lançar, testar e otimizar campanhas em tempo real, adaptando-se rapidamente às mudanças do mercado.
Construção de Relações: Permite uma comunicação bidirecional, construindo uma comunidade e uma relação de confiança com a sua audiência a longo prazo.
Parte 2: A Fundação Estratégica O Plano Antes da Ação
O maior erro no Marketing Digital é saltar para as táticas sem uma estratégia. É como tentar construir uma casa sem plantas.
Passo 1: Definir Objetivos SMART
Toda a sua estratégia deve começar com uma resposta clara à pergunta: "O que queremos alcançar?". Os seus objetivos devem ser:
* Specific (Específicos)
* Measurable (Mensuráveis)
* Achievable (Atingíveis)
* Relevant (Relevantes)
* Time-bound (Temporais)
Exemplo: "Aumentar o número de leads qualificados gerados através do nosso website em 25% nos próximos 6 meses, mantendo um Custo por Lead (CPL) abaixo de 20€."
Passo 2: Construir as Suas Buyer Personas
Você não pode comunicar eficazmente se não souber com quem está a falar. Uma buyer persona é um perfil semi-fictício do seu cliente ideal.
* Como criar: Baseie-se em dados reais. Entreviste os seus melhores clientes, fale com a sua equipa de vendas e analise os dados do seu CRM.
* O que incluir: Dados demográficos, cargo, objetivos, desafios ("dores"), e onde procuram informação.
Passo 3: Mapear a Jornada do Cliente
A jornada do cliente é o processo ativo que alguém percorre para se tornar seu cliente. Compreendê-la permite-lhe criar o conteúdo certo para o momento certo.
1. Fase de Descoberta (Awareness): O potencial cliente apercebe-se de que tem um problema ou uma necessidade. Ele procura informação para compreender melhor esse problema.
2. Fase de Consideração (Consideration): O potencial cliente já definiu o seu problema e está a pesquisar e a comparar as diferentes soluções e abordagens disponíveis.
3. Fase de Decisão (Decision): O potencial cliente já escolheu o tipo de solução e está agora a comparar fornecedores específicos para tomar a decisão final de compra.
Parte 3: Os Pilares do Marketing Digital As Disciplinas Essenciais
O Marketing Digital é um ecossistema de disciplinas interligadas. Vamos explorar os pilares fundamentais.
1. SEO (Search Engine Optimization)
O SEO é o processo de otimizar o seu site para que ele apareça nos primeiros lugares dos resultados orgânicos (não pagos) do Google. É a base para ser encontrado.
* Como funciona: Envolve a otimização de três áreas:
* SEO On-Page: Otimizar o conteúdo e a estrutura do seu próprio site (palavras-chave, títulos, meta descrições).
* SEO Off-Page: Construir a autoridade do seu site através de links de outros sites (backlinks).
* SEO Técnico: Garantir que o seu site é rápido, seguro e fácil de rastrear pelo Google.
* O seu papel: É a sua estratégia de longo prazo para obter tráfego qualificado e sustentável. O nosso serviço de SEO foca-se em construir esta visibilidade duradoura.
2. Marketing de Conteúdo
O conteúdo é o combustível que alimenta quase todas as outras áreas do Marketing Digital.
* O que é: Trata-se de criar e distribuir conteúdo valioso, relevante e consistente (artigos de blog, vídeos, e-books, etc.) para atrair e reter um público-alvo.
* O seu papel: Constrói confiança, estabelece a sua marca como uma autoridade, educa os seus potenciais clientes e alimenta as suas campanhas de SEO e redes sociais. A produção de conteúdos é o coração do marketing de atração.
3. Marketing nas Redes Sociais
As redes sociais são onde você constrói a sua comunidade e humaniza a sua marca.
* O que é: Utilizar plataformas como Instagram, Facebook, LinkedIn, etc., para se conectar com a sua audiência, partilhar conteúdo e promover a sua marca.
* O seu papel: Não se trata de estar em todas as redes, mas de estar nas redes certas para o seu público. É um canal para engagement, notoriedade da marca e, cada vez mais, para vendas diretas (social commerce). Uma gestão profissional de Redes Sociais garante uma presença estratégica e consistente.
4. Publicidade Paga (PPC - Pay-Per-Click)
O PPC é a forma de obter visibilidade e tráfego imediatos, pagando por cada clique no seu anúncio.
* Principais Plataformas:
* Google Ads: Responde à intenção de pesquisa do utilizador. Ideal para capturar leads e vendas diretas.
* Meta Ads (Facebook & Instagram): Baseia-se em interesses e demografia. Excelente para notoriedade e para alcançar públicos específicos.
* O seu papel: É o acelerador da sua estratégia. Permite-lhe testar ofertas rapidamente e garantir visibilidade imediata. A gestão de tráfego profissional é crucial para não desperdiçar orçamento.
5. Email Marketing
O email é o seu canal de comunicação direto e próprio.
* O que é: Enviar comunicações por email a uma lista de subscritores que lhe deram permissão para o fazer.
* O seu papel: É um dos canais com maior ROI. É fundamental para nutrir leads, fidelizar clientes e promover ofertas. O Email Marketing é a base da construção de relações a longo prazo.
6. Automação de Marketing
A automação é o motor que liga todas as peças e permite escalar a sua operação.
* O que é: Usar software para automatizar tarefas de marketing repetitivas com base no comportamento do utilizador.
* O seu papel: Permite-lhe entregar a mensagem certa, à pessoa certa, no momento certo, de forma automática. É essencial para a nutrição de leads e para a personalização em escala. A automação transforma o seu marketing de manual para inteligente.
Parte 4: O Website O Seu Quartel-General Digital
No meio de todas estas táticas e plataformas, o seu website é o único ativo que você controla a 100%. É o centro do seu universo digital.
* O seu papel: Todos os seus esforços de marketing digital devem, em última análise, convergir para o seu site. É lá que você controla a experiência, captura os leads e realiza as vendas.
* Elementos Críticos:
* Design Profissional e Responsivo (WebDesign): Deve ter uma ótima aparência e funcionar perfeitamente em todos os dispositivos, especialmente nos telemóveis.
* Experiência do Utilizador (UX): Deve ser fácil e intuitivo para o utilizador encontrar o que procura.
* Velocidade de Carregamento: Um site lento é um dos maiores assassinos de conversões.
* Otimizado para Conversão: Deve ter apelos à ação (CTAs) claros e formulários fáceis de preencher.
* A construção de sites profissionais é o investimento mais fundamental de toda a sua estratégia digital.
Parte 5: A Medição do Sucesso Análise de Dados e KPIs
A beleza do Marketing Digital é que tudo é mensurável. "O que não se mede, não se gere."
* Ferramentas Essenciais: O Google Analytics é a ferramenta gratuita e fundamental para analisar o tráfego e o comportamento no seu site.
* Métricas-Chave (KPIs - Key Performance Indicators):
* Tráfego: Número de visitantes do seu site.
* Taxa de Conversão: A percentagem de visitantes que realiza uma ação desejada (ex: preenche um formulário, faz uma compra).
* Custo de Aquisição de Cliente (CAC): O custo total de marketing e vendas para adquirir um novo cliente.
* Valor do Tempo de Vida do Cliente (LTV): A receita total que um cliente gera ao longo da sua relação com a sua empresa.
* Retorno do Investimento (ROI): A métrica final. Compara o lucro gerado com o custo do investimento em marketing.
* A capacidade de analisar estes dados é uma competência crucial. Programas como o INCoDe.2030 visam precisamente aumentar a literacia digital em Portugal.
Parte 6: A Integração Como Unir Todas as Peças
O verdadeiro poder do Marketing Digital não está em executar cada uma destas disciplinas de forma isolada, mas em integrá-las numa estratégia coesa.
* Exemplo de Integração:
1. Você cria um artigo de blog de alta qualidade (Marketing de Conteúdo).
2. Otimiza-o para o Google (SEO).
3. Promove-o nas redes sociais e através de anúncios pagos (Redes Sociais e PPC).
4. O tráfego chega ao seu site e alguns visitantes descarregam um e-book, tornando-se leads (Website e Geração de Leads).
5. Estes leads entram numa sequência de emails automatizada (Email Marketing e Automação).
6. Você mede todo o processo (Análise de Dados).
Gerir esta complexidade pode ser um desafio. É aqui que uma agência de marketing digital em Portugal como a Descomplicar® pode ser um parceiro estratégico, orquestrando todas as peças para si.
O Marketing Digital é um Processo Contínuo
O Marketing Digital não é um projeto com um início e um fim. É um processo contínuo de aprendizagem, teste e otimização. É uma jornada para compreender profundamente o seu cliente e encontrar formas cada vez mais eficazes de lhe entregar valor.
Para as empresas em Portugal, desde o negócio local à grande equipa, abraçar o Marketing Digital é abraçar o futuro. É a forma de competir, de crescer e de construir uma marca resiliente e relevante na economia moderna.
Está pronto para transformar a sua presença online de uma despesa numa máquina de crescimento?
O caminho começa com o primeiro passo estratégico. Se precisa de um guia para o ajudar a navegar neste universo, nós estamos aqui.
Marque uma Reunião e vamos desenhar juntos o mapa para o sucesso digital do seu negócio.
Perguntas Frequentes
Qual é a parte mais importante de uma estratégia de marketing digital?
A parte mais importante é a estratégia inicial: a definição clara dos seus objetivos e das suas buyer personas. Sem saber o que quer alcançar e para quem está a falar, todas as táticas de marketing digital (SEO, anúncios, etc.) serão ineficazes. Uma consultoria estratégica é o ponto de partida para qualquer campanha de sucesso.
Quanto tempo demora a ver resultados com o marketing digital?
O tempo para ver resultados no marketing digital varia com a tática. A publicidade paga (PPC) pode gerar resultados em dias. Estratégias orgânicas como SEO e Marketing de Conteúdo são investimentos a longo prazo, com resultados significativos a aparecerem geralmente entre 6 a 12 meses. Uma boa estratégia combina táticas de curto e longo prazo.
Uma pequena empresa pode competir com grandes marcas no marketing digital?
Absolutamente. Essa é uma das grandes vantagens do marketing digital. O sucesso não depende apenas do orçamento. Uma PME pode competir sendo mais ágil, focando-se num nicho específico, criando conteúdo de maior qualidade e oferecendo um serviço mais pessoal. O marketing digital nivela o campo de jogo.
O que é mais importante no marketing digital: SEO ou anúncios pagos?
Não é uma questão de "ou", mas de "e". O SEO constrói um ativo a longo prazo e gera tráfego orgânico de confiança. Os anúncios pagos oferecem resultados imediatos e controlo. A melhor estratégia de marketing digital integra ambos: usa os anúncios para obter resultados rápidos e dados, enquanto o SEO constrói a fundação para o crescimento sustentável.
Como posso medir o ROI (Retorno do Investimento) do meu marketing digital?
O ROI do marketing digital mede-se comparando o lucro gerado pelas suas campanhas com o custo total do seu investimento. Para isso, é essencial ter um bom sistema de análise (como o Google Analytics) e rastreamento de conversões. Deve calcular o seu Custo de Aquisição de Cliente (CAC) e o Valor do Tempo de Vida do Cliente (LTV) para ter uma visão clara da rentabilidade.
Preciso de estar em todas as redes sociais para ter sucesso no marketing digital?
Não. Tentar estar em todo o lado é um erro comum. A chave do sucesso no marketing digital é estar onde o seu público-alvo está. É melhor ter uma presença forte e consistente em uma ou duas plataformas relevantes do que uma presença fraca e esporádica em cinco. A nossa equipa de gestão de redes sociais pode ajudá-lo a escolher os canais certos.
Qual é o papel do website numa estratégia de marketing digital?
O website é o centro de todo o seu marketing digital. É o único ativo online que você controla a 100%. Todas as suas outras atividades (redes sociais, anúncios, email) devem ter como objetivo levar tráfego qualificado para o seu site, onde você pode controlar a experiência, capturar leads e fechar vendas. A construção de um site profissional é, por isso, fundamental.
Como é que a Inteligência Artificial está a mudar o marketing digital?
A Inteligência Artificial está a revolucionar o marketing digital ao permitir uma personalização e otimização sem precedentes. A IA é usada para otimizar lances em campanhas de anúncios, para personalizar recomendações de produtos, para criar chatbots inteligentes e para analisar grandes volumes de dados para encontrar padrões. A nossa abordagem à Inteligência Artificial foca-se em usar estas ferramentas para potenciar a estratégia humana.
Posso fazer o marketing digital da minha empresa sozinho ou devo contratar uma agência?
É possível fazer sozinho, mas o marketing digital é uma área vasta e que exige muito tempo e conhecimento especializado. Contratar uma agência de marketing digital como a Descomplicar® dá-lhe acesso a uma equipa de especialistas em várias áreas (SEO, anúncios, conteúdo), que trabalham de forma integrada para acelerar os seus resultados, permitindo que você se foque no seu negócio principal.
Qual é o primeiro passo para começar com o marketing digital?
O primeiro passo absoluto é criar um plano. Antes de gastar um único euro em anúncios ou de escrever uma única linha de conteúdo, sente-se e defina os seus objetivos, o seu público-alvo e a sua proposta de valor. Uma sessão de consultoria estratégica pode ser o investimento mais rentável que fará em todo o seu percurso de marketing digital."""),
],
),
]
generate_content_config = types.GenerateContentConfig(
temperature=1.1,
response_modalities=[
"audio",
],
speech_config=types.SpeechConfig(
voice_config=types.VoiceConfig(
prebuilt_voice_config=types.PrebuiltVoiceConfig(
voice_name="Autonoe"
)
)
),
)
file_index = 0
for chunk in client.models.generate_content_stream(
model=model,
contents=contents,
config=generate_content_config,
):
if (
chunk.candidates is None
or chunk.candidates[0].content is None
or chunk.candidates[0].content.parts is None
):
continue
if chunk.candidates[0].content.parts[0].inline_data and chunk.candidates[0].content.parts[0].inline_data.data:
file_name = f"marketing_digital_audio_{file_index}"
file_index += 1
inline_data = chunk.candidates[0].content.parts[0].inline_data
data_buffer = inline_data.data
file_extension = mimetypes.guess_extension(inline_data.mime_type)
if file_extension is None:
file_extension = ".wav"
data_buffer = convert_to_wav(inline_data.data, inline_data.mime_type)
save_binary_file(f"{file_name}{file_extension}", data_buffer)
else:
print(chunk.text)
def convert_to_wav(audio_data: bytes, mime_type: str) -> bytes:
"""Generates a WAV file header for the given audio data and parameters.
Args:
audio_data: The raw audio data as a bytes object.
mime_type: Mime type of the audio data.
Returns:
A bytes object representing the WAV file header.
"""
parameters = parse_audio_mime_type(mime_type)
bits_per_sample = parameters["bits_per_sample"]
sample_rate = parameters["rate"]
num_channels = 1
data_size = len(audio_data)
bytes_per_sample = bits_per_sample // 8
block_align = num_channels * bytes_per_sample
byte_rate = sample_rate * block_align
chunk_size = 36 + data_size # 36 bytes for header fields before data chunk size
# http://soundfile.sapp.org/doc/WaveFormat/
header = struct.pack(
"<4sI4s4sIHHIIHH4sI",
b"RIFF", # ChunkID
chunk_size, # ChunkSize (total file size - 8 bytes)
b"WAVE", # Format
b"fmt ", # Subchunk1ID
16, # Subchunk1Size (16 for PCM)
1, # AudioFormat (1 for PCM)
num_channels, # NumChannels
sample_rate, # SampleRate
byte_rate, # ByteRate
block_align, # BlockAlign
bits_per_sample, # BitsPerSample
b"data", # Subchunk2ID
data_size # Subchunk2Size (size of audio data)
)
return header + audio_data
def parse_audio_mime_type(mime_type: str) -> dict[str, int | None]:
"""Parses bits per sample and rate from an audio MIME type string.
Assumes bits per sample is encoded like "L16" and rate as "rate=xxxxx".
Args:
mime_type: The audio MIME type string (e.g., "audio/L16;rate=24000").
Returns:
A dictionary with "bits_per_sample" and "rate" keys. Values will be
integers if found, otherwise None.
"""
bits_per_sample = 16
rate = 24000
# Extract rate from parameters
parts = mime_type.split(";")
for param in parts: # Skip the main type part
param = param.strip()
if param.lower().startswith("rate="):
try:
rate_str = param.split("=", 1)[1]
rate = int(rate_str)
except (ValueError, IndexError):
# Handle cases like "rate=" with no value or non-integer value
pass # Keep rate as default
elif param.startswith("audio/L"):
try:
bits_per_sample = int(param.split("L", 1)[1])
except (ValueError, IndexError):
pass # Keep bits_per_sample as default if conversion fails
return {"bits_per_sample": bits_per_sample, "rate": rate}
if __name__ == "__main__":
generate()

141
tts-generator/gemini_tts_teste.py Executable file
View File

@@ -0,0 +1,141 @@
"""
gemini_tts_teste.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# To run this code you need to install the following dependencies:
# pip install google-genai
import base64
import mimetypes
import os
import re
import struct
from google import genai
from google.genai import types
def save_binary_file(file_name, data):
f = open(file_name, "wb")
f.write(data)
f.close()
print(f"File saved to to: {file_name}")
def generate_test():
client = genai.Client(
api_key=os.environ.get("GEMINI_API_KEY"),
)
model = "gemini-2.5-pro-preview-tts"
contents = [
types.Content(
role="user",
parts=[
types.Part.from_text(text="""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.
Marque uma reunião connosco e descubra como podemos acelerar o crescimento digital da sua empresa."""),
],
),
]
generate_content_config = types.GenerateContentConfig(
temperature=1.1,
response_modalities=[
"audio",
],
speech_config=types.SpeechConfig(
voice_config=types.VoiceConfig(
prebuilt_voice_config=types.PrebuiltVoiceConfig(
voice_name="Autonoe"
)
)
),
)
file_index = 0
for chunk in client.models.generate_content_stream(
model=model,
contents=contents,
config=generate_content_config,
):
if (
chunk.candidates is None
or chunk.candidates[0].content is None
or chunk.candidates[0].content.parts is None
):
continue
if chunk.candidates[0].content.parts[0].inline_data and chunk.candidates[0].content.parts[0].inline_data.data:
file_name = f"descomplicar_teste_audio_{file_index}"
file_index += 1
inline_data = chunk.candidates[0].content.parts[0].inline_data
data_buffer = inline_data.data
file_extension = mimetypes.guess_extension(inline_data.mime_type)
if file_extension is None:
file_extension = ".wav"
data_buffer = convert_to_wav(inline_data.data, inline_data.mime_type)
save_binary_file(f"{file_name}{file_extension}", data_buffer)
else:
print(chunk.text)
def convert_to_wav(audio_data: bytes, mime_type: str) -> bytes:
"""Generates a WAV file header for the given audio data and parameters."""
parameters = parse_audio_mime_type(mime_type)
bits_per_sample = parameters["bits_per_sample"]
sample_rate = parameters["rate"]
num_channels = 1
data_size = len(audio_data)
bytes_per_sample = bits_per_sample // 8
block_align = num_channels * bytes_per_sample
byte_rate = sample_rate * block_align
chunk_size = 36 + data_size
header = struct.pack(
"<4sI4s4sIHHIIHH4sI",
b"RIFF", # ChunkID
chunk_size, # ChunkSize (total file size - 8 bytes)
b"WAVE", # Format
b"fmt ", # Subchunk1ID
16, # Subchunk1Size (16 for PCM)
1, # AudioFormat (1 for PCM)
num_channels, # NumChannels
sample_rate, # SampleRate
byte_rate, # ByteRate
block_align, # BlockAlign
bits_per_sample, # BitsPerSample
b"data", # Subchunk2ID
data_size # Subchunk2Size (size of audio data)
)
return header + audio_data
def parse_audio_mime_type(mime_type: str) -> dict[str, int | None]:
"""Parses bits per sample and rate from an audio MIME type string."""
bits_per_sample = 16
rate = 24000
parts = mime_type.split(";")
for param in parts:
param = param.strip()
if param.lower().startswith("rate="):
try:
rate_str = param.split("=", 1)[1]
rate = int(rate_str)
except (ValueError, IndexError):
pass
elif param.startswith("audio/L"):
try:
bits_per_sample = int(param.split("L", 1)[1])
except (ValueError, IndexError):
pass
return {"bits_per_sample": bits_per_sample, "rate": rate}
if __name__ == "__main__":
generate_test()

View File

@@ -0,0 +1,192 @@
"""
gerar_artigo_completo.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Edge TTS - Artigo completo da Descomplicar
# pip install edge-tts
import asyncio
import edge_tts
async def gerar_artigo_completo():
"""
Gera áudio do artigo completo de Marketing Digital
"""
# Texto completo do artigo da Descomplicar
texto_completo = """A Estratégia Definitiva para Crescer 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. Neste novo paradigma, ter uma presença digital não é uma opção. É a base sobre a qual os negócios modernos são construídos e escalados. Bem-vindo ao universo do Marketing Digital.
Para muitas empresas em Portugal, o termo Marketing Digital pode parecer um labirinto complexo e intimidante de acrónimos como SEO, PPC e CRM, plataformas e táticas que mudam a uma velocidade vertiginosa. É fácil sentir-se sobrecarregado e não saber por onde começar, o que muitas vezes leva a ações descoordenadas um post aqui, um anúncio ali com poucos ou nenhuns resultados mensuráveis. O problema não está nas ferramentas, mas na ausência de uma estratégia coesa que as una.
Este guia é o seu mapa para esse labirinto. O nosso objetivo é desmistificar o Marketing Digital, transformando-o de uma coleção de táticas isoladas numa metodologia de crescimento integrada e compreensível. Vamos explorar cada pilar, desde a fundação estratégica até à execução tática e à medição do sucesso. Na Descomplicar, a nossa filosofia é que o marketing de sucesso não é sobre fazer tudo, mas sobre fazer as coisas certas, da forma certa, e na ordem certa.
Parte 1: A Revolução Digital Porque o Marketing Digital é o Novo Normal
Para dominar o presente, temos de compreender a mudança fundamental que nos trouxe até aqui.
A Mudança no Poder: Do Vendedor para o Consumidor
O marketing tradicional era baseado na interrupção. As empresas controlavam a mensagem e empurravam-na para o público através da TV, rádio e imprensa. Hoje, o poder mudou de mãos. O consumidor moderno, armado com um smartphone e acesso ilimitado à informação, está no controlo. Ele escolhe o que vê, quando vê e em quem confia. Dados do PORDATA mostram a penetração massiva da internet na sociedade portuguesa, solidificando esta nova realidade.
O Marketing Digital, na sua essência, é a resposta a esta mudança. É uma abordagem de puxar, não de empurrar. Trata-se de criar valor e estar presente nos canais onde os seus clientes já estão a procurar ativamente por soluções.
As Vantagens Inegáveis do Marketing Digital incluem mensurabilidade precisa, segmentação cirúrgica, custo-efetividade e ROI, agilidade e flexibilidade, e construção de relações a longo prazo.
Parte 2: A Fundação Estratégica O Plano Antes da Ação
O maior erro no Marketing Digital é saltar para as táticas sem uma estratégia. É como tentar construir uma casa sem plantas.
Primeiro passo: Definir Objetivos SMART. Toda a sua estratégia deve começar com uma resposta clara à pergunta: O que queremos alcançar? Os seus objetivos devem ser específicos, mensuráveis, atingíveis, relevantes e temporais.
Segundo passo: Construir as Suas Buyer Personas. Você não pode comunicar eficazmente se não souber com quem está a falar. Uma buyer persona é um perfil semi-fictício do seu cliente ideal.
Terceiro passo: Mapear a Jornada do Cliente. A jornada do cliente é o processo ativo que alguém percorre para se tornar seu cliente. Compreendê-la permite-lhe criar o conteúdo certo para o momento certo.
Parte 3: Os Pilares do Marketing Digital
O Marketing Digital é um ecossistema de disciplinas interligadas. Os pilares fundamentais incluem SEO, Marketing de Conteúdo, Marketing nas Redes Sociais, Publicidade Paga, Email Marketing e Automação de Marketing.
O SEO é o processo de otimizar o seu site para que ele apareça nos primeiros lugares dos resultados orgânicos do Google. O Marketing de Conteúdo trata-se de criar e distribuir conteúdo valioso, relevante e consistente para atrair e reter um público-alvo. As redes sociais são onde você constrói a sua comunidade e humaniza a sua marca.
A publicidade paga é a forma de obter visibilidade e tráfego imediatos. O email é o seu canal de comunicação direto e próprio. A automação é o motor que liga todas as peças e permite escalar a sua operação.
Parte 4: O Website O Seu Quartel-General Digital
No meio de todas estas táticas e plataformas, o seu website é o único ativo que você controla a 100%. É o centro do seu universo digital. Todos os seus esforços de marketing digital devem, em última análise, convergir para o seu site.
Parte 5: A Medição do Sucesso
A beleza do Marketing Digital é que tudo é mensurável. O que não se mede, não se gere. O Google Analytics é a ferramenta gratuita e fundamental para analisar o tráfego e o comportamento no seu site.
Parte 6: A Integração
O verdadeiro poder do Marketing Digital não está em executar cada uma destas disciplinas de forma isolada, mas em integrá-las numa estratégia coesa.
O Marketing Digital é um processo contínuo de aprendizagem, teste e otimização. É uma jornada para compreender profundamente o seu cliente e encontrar formas cada vez mais eficazes de lhe entregar valor.
Para as empresas em Portugal, desde o negócio local à grande equipa, abraçar o Marketing Digital é abraçar o futuro. É a forma de competir, de crescer e de construir uma marca resiliente e relevante na economia moderna.
Está pronto para transformar a sua presença online de uma despesa numa máquina de crescimento? O caminho começa com o primeiro passo estratégico. Se precisa de um guia para o ajudar a navegar neste universo, nós estamos aqui. Marque uma Reunião e vamos desenhar juntos o mapa para o sucesso digital do seu negócio."""
# Escolher voz (podes mudar entre RaquelNeural e DuarteNeural)
voz = "pt-PT-RaquelNeural" # Voz feminina PT-PT
print("🎙️ Gerando artigo completo da Descomplicar...")
print(f"📝 Texto: {len(texto_completo)} caracteres")
print(f"🎤 Voz: {voz}")
print("⏳ Isto pode demorar alguns minutos...")
try:
communicate = edge_tts.Communicate(texto_completo, voz)
await communicate.save("descomplicar_artigo_marketing_digital_ptpt.mp3")
print("✅ Artigo completo gerado!")
print("📁 Ficheiro: descomplicar_artigo_marketing_digital_ptpt.mp3")
print("🎯 Pronto para usar em podcasts, vídeos ou acessibilidade!")
return True
except Exception as e:
print(f"❌ Erro: {e}")
return False
async def escolher_voz():
"""
Permite escolher entre voz feminina ou masculina
"""
print("🎤 Escolha a voz para o artigo:")
print("1. Raquel (Feminina)")
print("2. Duarte (Masculino)")
escolha = input("Escolha (1/2): ").strip()
if escolha == "2":
return "pt-PT-DuarteNeural"
else:
return "pt-PT-RaquelNeural"
async def main():
voz = await escolher_voz()
# Atualizar voz no código
texto_completo = """A Estratégia Definitiva para Crescer 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. Neste novo paradigma, ter uma presença digital não é uma opção. É a base sobre a qual os negócios modernos são construídos e escalados. Bem-vindo ao universo do Marketing Digital.
Para muitas empresas em Portugal, o termo Marketing Digital pode parecer um labirinto complexo e intimidante de acrónimos como SEO, PPC e CRM, plataformas e táticas que mudam a uma velocidade vertiginosa. É fácil sentir-se sobrecarregado e não saber por onde começar, o que muitas vezes leva a ações descoordenadas um post aqui, um anúncio ali com poucos ou nenhuns resultados mensuráveis. O problema não está nas ferramentas, mas na ausência de uma estratégia coesa que as una.
Este guia é o seu mapa para esse labirinto. O nosso objetivo é desmistificar o Marketing Digital, transformando-o de uma coleção de táticas isoladas numa metodologia de crescimento integrada e compreensível. Vamos explorar cada pilar, desde a fundação estratégica até à execução tática e à medição do sucesso. Na Descomplicar, a nossa filosofia é que o marketing de sucesso não é sobre fazer tudo, mas sobre fazer as coisas certas, da forma certa, e na ordem certa.
Parte 1: A Revolução Digital Porque o Marketing Digital é o Novo Normal
Para dominar o presente, temos de compreender a mudança fundamental que nos trouxe até aqui.
A Mudança no Poder: Do Vendedor para o Consumidor
O marketing tradicional era baseado na interrupção. As empresas controlavam a mensagem e empurravam-na para o público através da TV, rádio e imprensa. Hoje, o poder mudou de mãos. O consumidor moderno, armado com um smartphone e acesso ilimitado à informação, está no controlo. Ele escolhe o que vê, quando vê e em quem confia. Dados do PORDATA mostram a penetração massiva da internet na sociedade portuguesa, solidificando esta nova realidade.
O Marketing Digital, na sua essência, é a resposta a esta mudança. É uma abordagem de puxar, não de empurrar. Trata-se de criar valor e estar presente nos canais onde os seus clientes já estão a procurar ativamente por soluções.
As Vantagens Inegáveis do Marketing Digital incluem mensurabilidade precisa, segmentação cirúrgica, custo-efetividade e ROI, agilidade e flexibilidade, e construção de relações a longo prazo.
Parte 2: A Fundação Estratégica O Plano Antes da Ação
O maior erro no Marketing Digital é saltar para as táticas sem uma estratégia. É como tentar construir uma casa sem plantas.
Primeiro passo: Definir Objetivos SMART. Toda a sua estratégia deve começar com uma resposta clara à pergunta: O que queremos alcançar? Os seus objetivos devem ser específicos, mensuráveis, atingíveis, relevantes e temporais.
Segundo passo: Construir as Suas Buyer Personas. Você não pode comunicar eficazmente se não souber com quem está a falar. Uma buyer persona é um perfil semi-fictício do seu cliente ideal.
Terceiro passo: Mapear a Jornada do Cliente. A jornada do cliente é o processo ativo que alguém percorre para se tornar seu cliente. Compreendê-la permite-lhe criar o conteúdo certo para o momento certo.
Parte 3: Os Pilares do Marketing Digital
O Marketing Digital é um ecossistema de disciplinas interligadas. Os pilares fundamentais incluem SEO, Marketing de Conteúdo, Marketing nas Redes Sociais, Publicidade Paga, Email Marketing e Automação de Marketing.
O SEO é o processo de otimizar o seu site para que ele apareça nos primeiros lugares dos resultados orgânicos do Google. O Marketing de Conteúdo trata-se de criar e distribuir conteúdo valioso, relevante e consistente para atrair e reter um público-alvo. As redes sociais são onde você constrói a sua comunidade e humaniza a sua marca.
A publicidade paga é a forma de obter visibilidade e tráfego imediatos. O email é o seu canal de comunicação direto e próprio. A automação é o motor que liga todas as peças e permite escalar a sua operação.
Parte 4: O Website O Seu Quartel-General Digital
No meio de todas estas táticas e plataformas, o seu website é o único ativo que você controla a 100%. É o centro do seu universo digital. Todos os seus esforços de marketing digital devem, em última análise, convergir para o seu site.
Parte 5: A Medição do Sucesso
A beleza do Marketing Digital é que tudo é mensurável. O que não se mede, não se gere. O Google Analytics é a ferramenta gratuita e fundamental para analisar o tráfego e o comportamento no seu site.
Parte 6: A Integração
O verdadeiro poder do Marketing Digital não está em executar cada uma destas disciplinas de forma isolada, mas em integrá-las numa estratégia coesa.
O Marketing Digital é um processo contínuo de aprendizagem, teste e otimização. É uma jornada para compreender profundamente o seu cliente e encontrar formas cada vez mais eficazes de lhe entregar valor.
Para as empresas em Portugal, desde o negócio local à grande equipa, abraçar o Marketing Digital é abraçar o futuro. É a forma de competir, de crescer e de construir uma marca resiliente e relevante na economia moderna.
Está pronto para transformar a sua presença online de uma despesa numa máquina de crescimento? O caminho começa com o primeiro passo estratégico. Se precisa de um guia para o ajudar a navegar neste universo, nós estamos aqui. Marque uma Reunião e vamos desenhar juntos o mapa para o sucesso digital do seu negócio."""
print("🎙️ Gerando artigo completo da Descomplicar...")
print(f"📝 Texto: {len(texto_completo)} caracteres")
print(f"🎤 Voz: {voz}")
print("⏳ Isto pode demorar alguns minutos...")
try:
communicate = edge_tts.Communicate(texto_completo, voz)
filename = f"descomplicar_artigo_marketing_digital_ptpt.mp3"
await communicate.save(filename)
print("✅ Artigo completo gerado!")
print(f"📁 Ficheiro: {filename}")
print("🎯 Pronto para usar em podcasts, vídeos ou acessibilidade!")
except Exception as e:
print(f"❌ Erro: {e}")
if __name__ == "__main__":
asyncio.run(main())

View File

@@ -0,0 +1,106 @@
"""
gerar_artigo_raquel.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Edge TTS - Artigo completo com voz Raquel
# pip install edge-tts
import asyncio
import edge_tts
async def gerar_artigo_raquel():
"""
Gera áudio do artigo completo com voz Raquel
"""
# Texto completo do artigo da Descomplicar
texto_completo = """A Estratégia Definitiva para Crescer 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. Neste novo paradigma, ter uma presença digital não é uma opção. É a base sobre a qual os negócios modernos são construídos e escalados. Bem-vindo ao universo do Marketing Digital.
Para muitas empresas em Portugal, o termo Marketing Digital pode parecer um labirinto complexo e intimidante de acrónimos como SEO, PPC e CRM, plataformas e táticas que mudam a uma velocidade vertiginosa. É fácil sentir-se sobrecarregado e não saber por onde começar, o que muitas vezes leva a ações descoordenadas um post aqui, um anúncio ali com poucos ou nenhuns resultados mensuráveis. O problema não está nas ferramentas, mas na ausência de uma estratégia coesa que as una.
Este guia é o seu mapa para esse labirinto. O nosso objetivo é desmistificar o Marketing Digital, transformando-o de uma coleção de táticas isoladas numa metodologia de crescimento integrada e compreensível. Vamos explorar cada pilar, desde a fundação estratégica até à execução tática e à medição do sucesso. Na Descomplicar, a nossa filosofia é que o marketing de sucesso não é sobre fazer tudo, mas sobre fazer as coisas certas, da forma certa, e na ordem certa.
Parte 1: A Revolução Digital Porque o Marketing Digital é o Novo Normal
Para dominar o presente, temos de compreender a mudança fundamental que nos trouxe até aqui.
A Mudança no Poder: Do Vendedor para o Consumidor
O marketing tradicional era baseado na interrupção. As empresas controlavam a mensagem e empurravam-na para o público através da TV, rádio e imprensa. Hoje, o poder mudou de mãos. O consumidor moderno, armado com um smartphone e acesso ilimitado à informação, está no controlo. Ele escolhe o que vê, quando vê e em quem confia. Dados do PORDATA mostram a penetração massiva da internet na sociedade portuguesa, solidificando esta nova realidade.
O Marketing Digital, na sua essência, é a resposta a esta mudança. É uma abordagem de puxar, não de empurrar. Trata-se de criar valor e estar presente nos canais onde os seus clientes já estão a procurar ativamente por soluções.
As Vantagens Inegáveis do Marketing Digital incluem mensurabilidade precisa, segmentação cirúrgica, custo-efetividade e ROI, agilidade e flexibilidade, e construção de relações a longo prazo.
Parte 2: A Fundação Estratégica O Plano Antes da Ação
O maior erro no Marketing Digital é saltar para as táticas sem uma estratégia. É como tentar construir uma casa sem plantas.
Primeiro passo: Definir Objetivos SMART. Toda a sua estratégia deve começar com uma resposta clara à pergunta: O que queremos alcançar? Os seus objetivos devem ser específicos, mensuráveis, atingíveis, relevantes e temporais.
Segundo passo: Construir as Suas Buyer Personas. Você não pode comunicar eficazmente se não souber com quem está a falar. Uma buyer persona é um perfil semi-fictício do seu cliente ideal.
Terceiro passo: Mapear a Jornada do Cliente. A jornada do cliente é o processo ativo que alguém percorre para se tornar seu cliente. Compreendê-la permite-lhe criar o conteúdo certo para o momento certo.
Parte 3: Os Pilares do Marketing Digital
O Marketing Digital é um ecossistema de disciplinas interligadas. Os pilares fundamentais incluem SEO, Marketing de Conteúdo, Marketing nas Redes Sociais, Publicidade Paga, Email Marketing e Automação de Marketing.
O SEO é o processo de otimizar o seu site para que ele apareça nos primeiros lugares dos resultados orgânicos do Google. O Marketing de Conteúdo trata-se de criar e distribuir conteúdo valioso, relevante e consistente para atrair e reter um público-alvo. As redes sociais são onde você constrói a sua comunidade e humaniza a sua marca.
A publicidade paga é a forma de obter visibilidade e tráfego imediatos. O email é o seu canal de comunicação direto e próprio. A automação é o motor que liga todas as peças e permite escalar a sua operação.
Parte 4: O Website O Seu Quartel-General Digital
No meio de todas estas táticas e plataformas, o seu website é o único ativo que você controla a 100%. É o centro do seu universo digital. Todos os seus esforços de marketing digital devem, em última análise, convergir para o seu site.
Parte 5: A Medição do Sucesso
A beleza do Marketing Digital é que tudo é mensurável. O que não se mede, não se gere. O Google Analytics é a ferramenta gratuita e fundamental para analisar o tráfego e o comportamento no seu site.
Parte 6: A Integração
O verdadeiro poder do Marketing Digital não está em executar cada uma destas disciplinas de forma isolada, mas em integrá-las numa estratégia coesa.
O Marketing Digital é um processo contínuo de aprendizagem, teste e otimização. É uma jornada para compreender profundamente o seu cliente e encontrar formas cada vez mais eficazes de lhe entregar valor.
Para as empresas em Portugal, desde o negócio local à grande equipa, abraçar o Marketing Digital é abraçar o futuro. É a forma de competir, de crescer e de construir uma marca resiliente e relevante na economia moderna.
Está pronto para transformar a sua presença online de uma despesa numa máquina de crescimento? O caminho começa com o primeiro passo estratégico. Se precisa de um guia para o ajudar a navegar neste universo, nós estamos aqui. Marque uma Reunião e vamos desenhar juntos o mapa para o sucesso digital do seu negócio."""
# Voz Raquel - PT-PT Feminina
voz = "pt-PT-RaquelNeural"
print("🎤 Gerando artigo completo com voz Raquel...")
print(f"📝 Texto: {len(texto_completo)} caracteres")
print(f"🎯 Voz: {voz} (Feminina PT-PT)")
print("⏳ Gerando áudio... isto pode demorar alguns minutos...")
try:
communicate = edge_tts.Communicate(texto_completo, voz)
filename = "descomplicar_artigo_marketing_digital_raquel.mp3"
await communicate.save(filename)
print("✅ Artigo completo gerado com sucesso!")
print(f"📁 Ficheiro: {filename}")
print("🎧 Duração estimada: 8-12 minutos")
print("🎯 Pronto para usar em:")
print(" • Podcasts da Descomplicar")
print(" • Narração de vídeos")
print(" • Acessibilidade do website")
print(" • Apresentações automáticas")
return True
except Exception as e:
print(f"❌ Erro: {e}")
return False
if __name__ == "__main__":
asyncio.run(gerar_artigo_raquel())

View File

@@ -0,0 +1,67 @@
"""
gerar_formatado.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Edge TTS - Texto formatado para melhor naturalidade
import asyncio
import edge_tts
async def gerar_com_pausas():
# Texto com pausas e formatação para melhor entoação
texto_formatado = """<speak>
<prosody rate="0.9" pitch="medium">
A Estratégia Definitiva para Crescer o Seu Negócio.
<break time="1s"/>
No século vinte e um, o mercado já não é um lugar físico. <break time="500ms"/> É um ecossistema digital em constante evolução.
<break time="500ms"/>
Os seus clientes não estão apenas a passar à porta da sua loja. <break time="300ms"/> Estão a pesquisar no Google, <break time="200ms"/> a pedir recomendações no Facebook, <break time="200ms"/> a descobrir marcas no Instagram <break time="200ms"/> e a procurar especialistas no LinkedIn.
<break time="1s"/>
Neste novo paradigma, ter uma presença digital não é uma opção. <break time="500ms"/> É a base sobre a qual os negócios modernos são construídos e escalados.
<break time="800ms"/>
Bem-vindo ao universo do Marketing Digital.
<break time="1.5s"/>
Para muitas empresas em Portugal, o termo Marketing Digital pode parecer um labirinto complexo e intimidante. <break time="500ms"/> Acrónimos como SEO, <break time="200ms"/> PPC <break time="200ms"/> e CRM, <break time="300ms"/> plataformas e táticas que mudam a uma velocidade vertiginosa.
<break time="800ms"/>
É fácil sentir-se sobrecarregado e não saber por onde começar. <break time="500ms"/> O que muitas vezes leva a ações descoordenadas: <break time="300ms"/> um post aqui, <break time="200ms"/> um anúncio ali, <break time="300ms"/> com poucos ou nenhuns resultados mensuráveis.
<break time="1s"/>
O problema não está nas ferramentas, <break time="300ms"/> mas na ausência de uma estratégia coesa que as una.
<break time="1.5s"/>
Este guia é o seu mapa para esse labirinto. <break time="500ms"/> O nosso objetivo é desmistificar o Marketing Digital, transformando-o de uma coleção de táticas isoladas numa metodologia de crescimento integrada e compreensível.
<break time="1s"/>
Na Descomplicar, a nossa filosofia é que o marketing de sucesso não é sobre fazer tudo, <break time="400ms"/> mas sobre fazer as coisas certas, <break time="300ms"/> da forma certa, <break time="300ms"/> e na ordem certa.
</prosody>
</speak>"""
voz = "pt-PT-RaquelNeural"
print("🎤 Gerando com formatação SSML para melhor naturalidade...")
communicate = edge_tts.Communicate(texto_formatado, voz)
await communicate.save("descomplicar_formatado_natural.mp3")
print("✅ Versão formatada gerada: descomplicar_formatado_natural.mp3")
if __name__ == "__main__":
asyncio.run(gerar_com_pausas())

46
tts-generator/gerar_limpo.py Executable file
View File

@@ -0,0 +1,46 @@
"""
gerar_limpo.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Edge TTS - Versão corrigida SEM SSML
import asyncio
import edge_tts
async def gerar_texto_limpo():
# Texto limpo, bem formatado, sem tags XML
texto_limpo = """A Estratégia Definitiva para Crescer o Seu Negócio.
No século vinte e um, 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.
Neste novo paradigma, ter uma presença digital não é uma opção. É a base sobre a qual os negócios modernos são construídos e escalados.
Bem-vindo ao universo do Marketing Digital.
Para muitas empresas em Portugal, o termo Marketing Digital pode parecer um labirinto complexo e intimidante. Acrónimos como SEO, PPC e CRM. Plataformas e táticas que mudam a uma velocidade vertiginosa.
É fácil sentir-se sobrecarregado e não saber por onde começar. O que muitas vezes leva a ações descoordenadas: um post aqui, um anúncio ali, com poucos ou nenhuns resultados mensuráveis.
O problema não está nas ferramentas, mas na ausência de uma estratégia coesa que as una.
Este guia é o seu mapa para esse labirinto. O nosso objetivo é desmistificar o Marketing Digital, transformando-o de uma coleção de táticas isoladas numa metodologia de crescimento integrada e compreensível.
Na Descomplicar, a nossa filosofia é que o marketing de sucesso não é sobre fazer tudo, mas sobre fazer as coisas certas, da forma certa, e na ordem certa."""
voz = "pt-PT-RaquelNeural"
print("🎤 Gerando versão limpa (sem SSML)...")
communicate = edge_tts.Communicate(texto_limpo, voz)
await communicate.save("descomplicar_limpo_raquel.mp3")
print("✅ Versão limpa gerada: descomplicar_limpo_raquel.mp3")
print("💡 Agora sem tags XML que a Raquel estava a ler!")
if __name__ == "__main__":
asyncio.run(gerar_texto_limpo())

View File

@@ -0,0 +1,61 @@
"""
openai_ptpt_hack.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Tentativa de forçar PT-PT no OpenAI TTS
# pip install openai
import os
from openai import OpenAI
from pathlib import Path
def generate_audio_openai_ptpt():
"""
Tenta gerar áudio PT-PT modificando o texto
"""
client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY")
)
# Adicionar indicações de pronuncia PT-PT
texto_ptpt = """[Falar com sotaque português europeu, não brasileiro]
Bem-vindo à Descomplicar, a agência de aceleração digital que transforma a vossa presença online numa máquina de crescimento.
Somos especialistas em Marketing Digital, criação de sítios web profissionais e estratégias que geram resultados reais para o vosso negócio.
Na Descomplicar, a nossa filosofia é simples: tornar o complexo mais simples. Descomplicamos o marketing digital para que vós vos possais focar no que fazeis melhor - gerir o vosso negócio."""
print("🇵🇹 Tentando forçar sotaque PT-PT no OpenAI...")
try:
response = client.audio.speech.create(
model="tts-1-hd",
voice="nova", # Voz que pode soar mais neutra
input=texto_ptpt,
response_format="mp3"
)
speech_file_path = Path("descomplicar_ptpt_tentativa.mp3")
with open(speech_file_path, "wb") as f:
f.write(response.content)
print(f"✅ Áudio gerado: {speech_file_path}")
print("🎧 Ouve para ver se melhorou o sotaque")
return True
except Exception as e:
print(f"❌ Erro: {e}")
return False
if __name__ == "__main__":
if not os.environ.get("OPENAI_API_KEY"):
print("❌ OPENAI_API_KEY não configurada!")
exit(1)
generate_audio_openai_ptpt()

115
tts-generator/openai_tts.py Executable file
View File

@@ -0,0 +1,115 @@
"""
openai_tts.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# OpenAI TTS Generator for Descomplicar
# pip install openai
import os
from openai import OpenAI
from pathlib import Path
def generate_audio_openai():
"""
Gera áudio usando OpenAI TTS API
"""
# Configurar cliente OpenAI
client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY")
)
# Texto do artigo de Marketing Digital da Descomplicar
texto_marketing = """A Estratégia Definitiva para Crescer 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. Neste novo paradigma, ter uma presença digital não é uma opção. É a base sobre a qual os negócios modernos são construídos e escalados. Bem-vindo ao universo do Marketing Digital.
Para muitas empresas em Portugal, o termo Marketing Digital pode parecer um labirinto complexo e intimidante de acrónimos como SEO, PPC e CRM, plataformas e táticas que mudam a uma velocidade vertiginosa. É fácil sentir-se sobrecarregado e não saber por onde começar, o que muitas vezes leva a ações descoordenadas um post aqui, um anúncio ali com poucos ou nenhuns resultados mensuráveis. O problema não está nas ferramentas, mas na ausência de uma estratégia coesa que as una.
Este guia é o seu mapa para esse labirinto. O nosso objetivo é desmistificar o Marketing Digital, transformando-o de uma coleção de táticas isoladas numa metodologia de crescimento integrada e compreensível. Vamos explorar cada pilar, desde a fundação estratégica até à execução tática e à medição do sucesso. Na Descomplicar, a nossa filosofia é que o marketing de sucesso não é sobre fazer tudo, mas sobre fazer as coisas certas, da forma certa, e na ordem certa."""
print("🎙️ Iniciando geração de áudio com OpenAI TTS...")
print(f"📝 Texto tem {len(texto_marketing)} caracteres")
try:
# Fazer request à OpenAI TTS API
response = client.audio.speech.create(
model="tts-1-hd", # Modelo de alta qualidade
voice="nova", # Voz feminina natural
input=texto_marketing,
response_format="mp3"
)
# Salvar o áudio
speech_file_path = Path("descomplicar_marketing_digital.mp3")
with open(speech_file_path, "wb") as f:
f.write(response.content)
print(f"✅ Áudio gerado com sucesso: {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}")
return False
def generate_audio_test():
"""
Teste rápido com texto menor
"""
client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY")
)
texto_teste = """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."""
print("🧪 Testando OpenAI TTS com texto pequeno...")
try:
response = client.audio.speech.create(
model="tts-1", # Modelo standard (mais rápido)
voice="nova", # Voz feminina
input=texto_teste,
response_format="mp3"
)
speech_file_path = Path("descomplicar_teste.mp3")
with open(speech_file_path, "wb") as f:
f.write(response.content)
print(f"✅ Teste concluído: {speech_file_path}")
return True
except Exception as e:
print(f"❌ Erro no teste: {e}")
return False
if __name__ == "__main__":
# Verificar se API key está configurada
if not os.environ.get("OPENAI_API_KEY"):
print("❌ OPENAI_API_KEY não configurada!")
print("Configure com: export OPENAI_API_KEY='sua_chave'")
exit(1)
print("🤖 Gerador de Voz OpenAI - Descomplicar")
print("=" * 50)
# Escolher entre teste ou completo
escolha = input("Escolha: (t)este pequeno ou (c)ompleto? [t/c]: ").lower()
if escolha == 'c':
print("\n🎯 Gerando áudio completo...")
generate_audio_openai()
else:
print("\n🧪 Gerando teste...")
generate_audio_test()
print("\n📁 Ficheiros MP3 gerados na pasta atual")

2
tts-generator/requirements.txt Executable file
View File

@@ -0,0 +1,2 @@
openai>=1.0.0
edge-tts>=7.0.0

32
tts-generator/run_edge_tts.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/bin/bash
# run_edge_tts.sh
# Author: Descomplicar® Crescimento Digital
# Link: https://descomplicar.pt
# Copyright: 2025 Descomplicar®
# Edge TTS - Solução gratuita e com PT-PT nativo
echo "🇵🇹 Configurando Edge TTS (Gratuito + PT-PT Nativo)"
echo "=" * 55
# Ativar ambiente virtual
if [ ! -d "venv" ]; then
python3 -m venv venv
fi
source venv/bin/activate
# Instalar edge-tts
echo "📦 Instalando edge-tts..."
pip install edge-tts
# Executar
echo "🎙️ Gerando áudio com voz portuguesa nativa..."
python edge_tts_ptpt.py
echo ""
echo "🎧 Ficheiros gerados:"
ls -la *.mp3 | grep edge 2>/dev/null || echo "Nenhum ficheiro encontrado"
echo ""
echo "✅ Edge TTS - 100% gratuito, sem limites, PT-PT autêntico!"

View File

@@ -0,0 +1,33 @@
@echo off
REM Script para Windows - Configurar e executar o Gerador de Voz da Descomplicar
echo 🎙️ Configurando Gerador de Voz da Descomplicar...
REM Carregar API Key do .env
if exist .env (
for /f "tokens=1,2 delims==" %%a in (.env) do set %%a=%%b
)
if "%GEMINI_API_KEY%"=="" (
echo ERRO: GEMINI_API_KEY nao configurada! Criar .env com GEMINI_API_KEY=...
pause
exit /b 1
)
REM Verificar se Python está instalado
python --version >nul 2>&1
if errorlevel 1 (
echo ❌ Python não encontrado. Por favor, instale o Python 3.8+
pause
exit /b 1
)
REM Instalar dependências
echo 📦 Instalando dependências...
pip install google-genai
REM Executar o script
echo 🚀 Iniciando geração de áudio...
python gemini_tts.py
echo ✅ Processo concluído! Verifique os ficheiros de áudio gerados.
pause

42
tts-generator/run_gemini_tts.sh Executable file
View File

@@ -0,0 +1,42 @@
#!/bin/bash
# run_gemini_tts.sh
# Author: Descomplicar® Crescimento Digital
# Link: https://descomplicar.pt
# Copyright: 2025 Descomplicar®
# Script para configurar e executar o Gerador de Voz da Descomplicar
# Usage: ./run_gemini_tts.sh
echo "🎙️ Configurando Gerador de Voz da Descomplicar..."
# Carregar API Key do .env
if [ -f .env ]; then
export $(grep -v '^#' .env | xargs)
fi
if [ -z "$GEMINI_API_KEY" ]; then
echo "ERRO: GEMINI_API_KEY nao configurada! Criar .env com GEMINI_API_KEY=..."
exit 1
fi
# Verificar se Python está instalado
if ! command -v python3 &> /dev/null; then
echo "❌ Python3 não encontrado. Por favor, instale o Python 3.8+"
exit 1
fi
# Verificar se pip está instalado
if ! command -v pip &> /dev/null; then
echo "❌ pip não encontrado. Por favor, instale o pip"
exit 1
fi
# Instalar dependências
echo "📦 Instalando dependências..."
pip install google-genai
# Executar o script
echo "🚀 Iniciando geração de áudio..."
python3 gemini_tts.py
echo "✅ Processo concluído! Verifique os ficheiros de áudio gerados."

View File

@@ -0,0 +1,66 @@
#!/bin/bash
# run_gemini_tts_venv.sh
# Author: Descomplicar® Crescimento Digital
# Link: https://descomplicar.pt
# Copyright: 2025 Descomplicar®
# Script para configurar e executar o Gerador de Voz da Descomplicar
# Com ambiente virtual para evitar conflitos do sistema
echo "🎙️ Configurando Gerador de Voz da Descomplicar..."
# Carregar API Key do .env
if [ -f .env ]; then
export $(grep -v '^#' .env | xargs)
fi
if [ -z "$GEMINI_API_KEY" ]; then
echo "ERRO: GEMINI_API_KEY nao configurada! Criar .env com GEMINI_API_KEY=..."
exit 1
fi
# Verificar se Python está instalado
if ! command -v python3 &> /dev/null; then
echo "❌ Python3 não encontrado. Por favor, instale o Python 3.8+"
exit 1
fi
# Criar ambiente virtual se não existir
if [ ! -d "venv" ]; then
echo "📦 Criando ambiente virtual..."
python3 -m venv venv
if [ $? -ne 0 ]; then
echo "❌ Erro ao criar ambiente virtual. Instalando python3-venv..."
sudo apt update
sudo apt install python3-venv python3-full -y
python3 -m venv venv
fi
fi
# Ativar ambiente virtual
echo "🔄 Ativando ambiente virtual..."
source venv/bin/activate
# Atualizar pip
echo "🔧 Atualizando pip..."
pip install --upgrade pip
# Instalar dependências
echo "📦 Instalando dependências no ambiente virtual..."
pip install google-genai
# Verificar se a instalação foi bem-sucedida
if python -c "import google.genai" 2>/dev/null; then
echo "✅ Dependências instaladas com sucesso!"
else
echo "❌ Erro na instalação das dependências"
exit 1
fi
# Executar o script
echo "🚀 Iniciando geração de áudio..."
python gemini_tts.py
# Manter o ambiente ativo para debugging se necessário
echo "✅ Processo concluído! Verifique os ficheiros de áudio gerados."
echo "💡 Para usar novamente, execute: source venv/bin/activate && python gemini_tts.py"

38
tts-generator/run_openai_tts.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/bin/bash
# run_openai_tts.sh
# Author: Descomplicar® Crescimento Digital
# Link: https://descomplicar.pt
# Copyright: 2025 Descomplicar®
# Script para executar OpenAI TTS com configuração automática
echo "🤖 Configurando OpenAI TTS para a Descomplicar..."
# Carregar API Key do .env
if [ -f .env ]; then
export $(grep -v '^#' .env | xargs)
fi
if [ -z "$OPENAI_API_KEY" ]; then
echo "ERRO: OPENAI_API_KEY nao configurada! Criar .env com OPENAI_API_KEY=..."
exit 1
fi
# Ativar ambiente virtual se existir, senão criar
if [ ! -d "venv" ]; then
echo "📦 Criando ambiente virtual..."
python3 -m venv venv
fi
echo "🔄 Ativando ambiente virtual..."
source venv/bin/activate
# Instalar dependências OpenAI
echo "📦 Instalando openai..."
pip install openai
# Executar o script
echo "🎙️ Executando gerador OpenAI TTS..."
python openai_tts.py
echo "✅ Processo concluído!"
echo "🎵 Verifique os ficheiros MP3 gerados"

View File

@@ -0,0 +1,26 @@
#!/bin/bash
# testar_opcoes_naturais.sh
# Author: Descomplicar® Crescimento Digital
# Link: https://descomplicar.pt
# Copyright: 2025 Descomplicar®
# Teste rápido das diferentes opções
echo "🎧 Testando opções para voz mais natural..."
source venv/bin/activate
echo "1⃣ Testando voz masculina Duarte..."
python teste_duarte.py
echo ""
echo "2⃣ Testando formatação melhorada..."
python gerar_formatado.py
echo ""
echo "🎧 Ficheiros gerados para comparação:"
ls -la teste_duarte_ptpt.mp3 descomplicar_formatado_natural.mp3 2>/dev/null
echo ""
echo "💡 Ouve ambos e diz qual soa mais natural!"
echo "📝 Se ainda não estiver bom, posso configurar Azure Speech"

View File

@@ -0,0 +1,109 @@
# 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")

30
tts-generator/teste_duarte.py Executable file
View File

@@ -0,0 +1,30 @@
"""
teste_duarte.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Edge TTS - Teste com voz Duarte (masculina)
import asyncio
import edge_tts
async def teste_duarte():
texto_teste = """Bem-vindos à Descomplicar, a agência de aceleração digital que transforma a vossa 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 vosso negócio.
Na Descomplicar, a nossa filosofia é simples: tornar o complexo mais simples."""
voz = "pt-PT-DuarteNeural"
print(f"🎤 Testando voz masculina: {voz}")
communicate = edge_tts.Communicate(texto_teste, voz)
await communicate.save("teste_duarte_ptpt.mp3")
print("✅ Teste Duarte gerado: teste_duarte_ptpt.mp3")
if __name__ == "__main__":
asyncio.run(teste_duarte())

View File

@@ -0,0 +1,43 @@
#!/bin/bash
# teste_nova_chave_gemini.sh
# Author: Descomplicar® Crescimento Digital
# Link: https://descomplicar.pt
# Copyright: 2025 Descomplicar®
# Teste rápido da nova chave Google Gemini
echo "🎯 Testando nova chave Google Gemini..."
# Carregar API Key do .env
if [ -f .env ]; then
export $(grep -v '^#' .env | xargs)
fi
if [ -z "$GEMINI_API_KEY" ]; then
echo "ERRO: GEMINI_API_KEY nao configurada! Criar .env com GEMINI_API_KEY=..."
exit 1
fi
# Ativar ambiente virtual se existir
if [ -d "venv" ]; then
echo "🔄 Ativando ambiente virtual..."
source venv/bin/activate
fi
# Verificar se google-genai está instalado
echo "📦 Verificando dependências..."
python -c "import google.genai" 2>/dev/null || {
echo "📦 Instalando google-genai..."
pip install google-genai
}
# Executar teste pequeno primeiro
echo "🧪 Executando teste com texto pequeno..."
python gemini_tts_teste.py
echo ""
echo "📁 Ficheiros gerados:"
ls -la *.wav 2>/dev/null || echo "❌ Nenhum ficheiro WAV encontrado"
echo ""
echo "🎯 Se funcionou, execute o completo com:"
echo "./run_gemini_tts_venv.sh"

25
tts-generator/teste_quota.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
# teste_quota.sh
# Author: Descomplicar® Crescimento Digital
# Link: https://descomplicar.pt
# Copyright: 2025 Descomplicar®
# Teste rápido com texto pequeno
echo "🧪 Testando com texto menor para verificar quota..."
# Carregar API Key do .env
if [ -f .env ]; then
export $(grep -v '^#' .env | xargs)
fi
if [ -z "$GEMINI_API_KEY" ]; then
echo "ERRO: GEMINI_API_KEY nao configurada!"
exit 1
fi
source venv/bin/activate
echo "🎤 Gerando áudio de teste..."
python gemini_tts_teste.py
echo "📁 Ficheiros gerados:"
ls -la *.wav 2>/dev/null || echo "Nenhum ficheiro WAV encontrado"

View File

@@ -0,0 +1,41 @@
"""
teste_rapido_edge.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Edge TTS - Teste rápido corrigido
# pip install edge-tts
import asyncio
import edge_tts
async def gerar_audio_rapido():
"""
Teste rápido com voz correta
"""
texto = "Olá, bem-vindos à Descomplicar. Somos uma agência portuguesa de marketing digital que transforma a vossa presença online numa máquina de crescimento."
# Testar ambas as vozes PT-PT
vozes = [
("pt-PT-RaquelNeural", "feminina"),
("pt-PT-DuarteNeural", "masculina")
]
for voz, genero in vozes:
print(f"🎤 Testando voz {genero}: {voz}")
try:
communicate = edge_tts.Communicate(texto, voz)
filename = f"teste_{genero}_ptpt.mp3"
await communicate.save(filename)
print(f"✅ Gerado: {filename}")
except Exception as e:
print(f"❌ Erro com {voz}: {e}")
if __name__ == "__main__":
asyncio.run(gerar_audio_rapido())

View File

@@ -0,0 +1,34 @@
#!/bin/bash
# teste_todas_vozes.sh
# Author: Descomplicar® Crescimento Digital
# Link: https://descomplicar.pt
# Copyright: 2025 Descomplicar®
# Carregar API key do .env
if [ -f .env ]; then
export $(grep -v '^#' .env | xargs)
fi
if [ -z "$OPENAI_API_KEY" ]; then
echo "ERRO: OPENAI_API_KEY nao configurada! Criar .env com OPENAI_API_KEY=..."
exit 1
fi
echo "🔬 Teste Comparativo de Vozes OpenAI para PT-PT"
echo "=" * 50
# Ativar venv se não estiver ativo
if [[ "$VIRTUAL_ENV" == "" ]]; then
source venv/bin/activate
fi
# Executar teste
python teste_comparativo_vozes.py
echo ""
echo "🎧 Ficheiros gerados para comparação:"
ls -la *.mp3 | grep teste_voz 2>/dev/null || echo "Nenhum ficheiro de teste encontrado"
ls -la *.mp3 | grep ptpt_trick 2>/dev/null || echo "Nenhum ficheiro de truque encontrado"
echo ""
echo "💡 Ouve cada ficheiro para identificar qual soa mais PT-PT"

View File

@@ -0,0 +1,33 @@
"""
teste_velocidade.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
# Edge TTS - Usando rate parameter (funciona!)
import asyncio
import edge_tts
async def gerar_velocidade_ajustada():
texto = """Bem-vindos à Descomplicar, a agência de aceleração digital que transforma a vossa 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 vosso negócio.
Na Descomplicar, a nossa filosofia é simples: tornar o complexo mais simples."""
voz = "pt-PT-RaquelNeural"
# Edge TTS suporta rate como parâmetro na voice string
voz_ajustada = f"{voz}:rate=-20%" # 20% mais devagar
print("🎤 Testando velocidade ajustada (20% mais devagar)...")
communicate = edge_tts.Communicate(texto, voz_ajustada)
await communicate.save("teste_velocidade_raquel.mp3")
print("✅ Teste com velocidade ajustada: teste_velocidade_raquel.mp3")
if __name__ == "__main__":
asyncio.run(gerar_velocidade_ajustada())