Este tutorial é uma contribuição da comunidade e não é suportado pela equipe do Open WebUI. Ele serve apenas como uma demonstração de como personalizar o Open WebUI para seu caso de uso específico. Quer contribuir? Confira o tutorial de contribuição.
Integrando openai-edge-tts
🗣️ com Open WebUI
O que é openai-edge-tts
?
OpenAI Edge TTS é uma API de texto para fala que imita o endpoint da API do OpenAI, permitindo uma substituição direta em cenários onde você pode definir a URL do endpoint, como no Open WebUI.
Ele utiliza o pacote edge-tts, que aproveita o recurso gratuito "Ler em voz alta" do navegador Edge para emular uma solicitação à Microsoft / Azure e, assim, obter texto para fala de alta qualidade gratuitamente.
Como é diferente de openedai-speech?
Semelhante ao openedai-speech, openai-edge-tts é um endpoint de API de texto para fala que imita o endpoint da API do OpenAI, permitindo uma substituição direta em cenários onde o endpoint de fala do OpenAI pode ser chamado e a URL do endpoint do servidor pode ser configurada.
openedai-speech
é uma opção mais completa que permite a geração totalmente offline de fala com várias modalidades para escolher.
openai-edge-tts
é uma opção mais simples que usa um pacote Python chamado edge-tts
para gerar o áudio.
Requisitos
- Docker instalado no seu sistema
- Open WebUI em execução
⚡️ Início rápido
A maneira mais simples de começar sem precisar configurar nada é executar o comando abaixo
docker run -d -p 5050:5050 travisvn/openai-edge-tts:latest
Isso executará o serviço na porta 5050 com todas as configurações padrão
Configurando o Open WebUI para usar openai-edge-tts
- Abra o Painel de Administração e vá para
Configurações
->Áudio
- Configure suas configurações de TTS para corresponder à captura de tela abaixo
- Nota: você pode especificar a Voz TTS aqui
A chave de API padrão é a string your_api_key_here
. Você não precisa modificar esse valor se não precisar de segurança adicional.
E é isso! Você pode parar aqui
Por favor ⭐️ avalie o repositório no GitHub se você achar OpenAI Edge TTS útil
Executando com Python
🐍 Executando com Python
Se você preferir executar este projeto diretamente com Python, siga estas etapas para configurar um ambiente virtual, instalar as dependências e iniciar o servidor.
1. Clone o Repositório
git clone https://github.com/travisvn/openai-edge-tts.git
cd openai-edge-tts
2. Configure um Ambiente Virtual
Crie e ative um ambiente virtual para isolar as dependências:
# Para macOS/Linux
python3 -m venv venv
source venv/bin/activate
# Para Windows
python -m venv venv
venv\Scripts\activate
3. Instale as Dependências
Use pip
para instalar os pacotes necessários listados em requirements.txt
:
pip install -r requirements.txt
4. Configure Variáveis de Ambiente
Crie um arquivo .env
no diretório raiz e defina as seguintes variáveis:
API_KEY=your_api_key_here
PORT=5050
DEFAULT_VOICE=en-US-AvaNeural
DEFAULT_RESPONSE_FORMAT=mp3
DEFAULT_SPEED=1.0
DEFAULT_LANGUAGE=en-US
REQUIRE_API_KEY=True
REMOVE_FILTER=False
EXPAND_API=True
5. Execute o Servidor
Depois de configurado, inicie o servidor com:
python app/server.py
O servidor começará a executar em http://localhost:5050
.
6. Teste a API
Agora você pode interagir com a API em http://localhost:5050/v1/audio/speech
e outros endpoints disponíveis. Veja a seção de Uso para exemplos de requisição.
Detalhes de uso
Endpoint: /v1/audio/speech
(alias com /audio/speech
)
Gera áudio a partir do texto de entrada. Parâmetros disponíveis:
Parâmetro Obrigatório:
- input (string): O texto a ser convertido em áudio (até 4096 caracteres).
Parâmetros Opcionais:
- model (string): Defina como "tts-1" ou "tts-1-hd" (padrão:
"tts-1"
). - voice (string): Uma das vozes compatíveis com OpenAI (alloy, echo, fable, onyx, nova, shimmer) ou qualquer voz válida do
edge-tts
(padrão:"en-US-AvaNeural"
). - response_format (string): Formato do áudio. Opções:
mp3
,opus
,aac
,flac
,wav
,pcm
(padrão:mp3
). - speed (número): Velocidade de reprodução (0.25 a 4.0). O padrão é
1.0
.
Você pode navegar pelas vozes disponíveis e ouvir pré-visualizações de amostras em tts.travisvn.com
Exemplo de requisição com curl
e salvando a saída em um arquivo mp3:
curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer seu_api_key_aqui" \
-d {
"input": "Olá, eu sou o seu assistente de IA! Apenas me diga como posso ajudar a dar vida às suas ideias.",
"voice": "echo",
"response_format": "mp3",
"speed": 1.0
} \
--output speech.mp3
Ou, para estar em conformidade com os parâmetros do endpoint da API OpenAI:
curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer seu_api_key_aqui" \
-d {
"model": "tts-1",
"input": "Olá, eu sou o seu assistente de IA! Apenas me diga como posso ajudar a dar vida às suas ideias.",
"voice": "alloy"
} \
--output speech.mp3
E um exemplo de um idioma diferente do inglês:
curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer seu_api_key_aqui" \
-d {
"model": "tts-1",
"input": "じゃあ、行く。電車の時間、調べておくよ。",
"voice": "ja-JP-KeitaNeural"
} \
--output speech.mp3
Endpoints Adicionais
- POST/GET /v1/models: Lista os modelos de TTS disponíveis.
- POST/GET /v1/voices: Lista as vozes
edge-tts
para um idioma / localidade específico. - POST/GET /v1/voices/all: Lista todas as vozes
edge-tts
, com informações de suporte ao idioma.
O /v1
agora é opcional.
Além disso, há endpoints para Azure AI Speech e ElevenLabs para suporte futuro potencial, caso endpoints de API personalizados sejam permitidos para essas opções no Open WebUI.
Esses podem ser desabilitados configurando a variável de ambiente EXPAND_API=False
.
🐳 Configuração Rápida para Docker
Você pode configurar as variáveis de ambiente no comando usado para executar o projeto
docker run -d -p 5050:5050 \
-e API_KEY=seu_api_key_aqui \
-e PORT=5050 \
-e DEFAULT_VOICE=en-US-AvaNeural \
-e DEFAULT_RESPONSE_FORMAT=mp3 \
-e DEFAULT_SPEED=1.0 \
-e DEFAULT_LANGUAGE=en-US \
-e REQUIRE_API_KEY=True \
-e REMOVE_FILTER=False \
-e EXPAND_API=True \
travisvn/openai-edge-tts:latest
O texto markdown agora passa por um filtro para melhor legibilidade e suporte.
Você pode desabilitar isso configurando a variável de ambiente REMOVE_FILTER=True
.
Recursos Adicionais
Para mais informações sobre openai-edge-tts
, você pode visitar o repositório GitHub
Para suporte direto, você pode visitar o Discord Voice AI & TTS
🎙️ Exemplos de Vozes
Ouça exemplos de vozes e veja todas as vozes disponíveis do Edge TTS