Ui da web de casca
Este aplicativo é uma interface da web baseada em frasco Python, projetada para facilitar a geração de texto em fala usando a casca da SUNO AI. Ele oferece uma variedade de opções de personalização, incluindo a capacidade de modificar o tom de voz, a velocidade e outros parâmetros.
Captura de tela
Instalação
- Instale a casca seguindo as instruções do repositório da casca. 1a. Se você não executou a casca antes de precisar baixar os modelos, a execução de um teste baixará e cache os modelos necessários (os modelos de anotações variam em tamanho, incluindo um com mais de 5 GB de tamanho).
python -m bark --text "Let's get this party started!" --output_filename "party.wav"
- Depois que a casca estiver executando o clone, este repositório em um diretório chamado
webui no local da instalação bark .
cd bark
git clone https://github.com/bradsec/barkwebui webui
- Instale quaisquer pacotes python adicionais mencionados no arquivo requisitos.txt para atender às importações necessárias em
app.py e bark_connector.py . Já haverá importações compartilhadas instaladas pelo processo de configuração da casca. Se aplicável antes de instalar as importações, ative o ambiente Python Venv ou CONDA/Miniconda que você está usando para a casca. - Execute a
python barkwebui_server.py na pasta webui para iniciar o aplicativo Flask Web Server e uma saída semelhante deve ser exibida:
* Serving Flask app 'barkwebui_server'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
- Acesse o aplicativo da Web via endereço do navegador, conforme mostrado na janela do terminal.
Estrutura
barkwebui_server.py fornece a funcionalidade do servidor da web do Flask recebe e retorna informações da interface da web e passa para barkwebui_connector.py . Também lida com a escrita e a exclusão das entradas do datas do JSON.
barkwebui_connector.py interrompe a entrada de texto antes de passar o texto para o aplicativo da casca. Também aplica qualquer efeito de áudio selecionado como alterações na velocidade, afinação, redução de ruído e remoção de silêncio se selecionado. Em seguida, ele escreverá o .wav com o nome de arquivo exclusivo no diretório static/output .
templates/index.html o único arquivo html usado para o aplicativo. Ele fará referência a outros arquivos como CSS e JavaScript no diretório static .
static/js - Este diretório contém dois javascript para index.html modelo de modelo.
-
barkwebui.js fornece a maior parte da funcionalidade da página e o link entre app.py usando soquete.io -
populate.js preenche as opções de suspensão selecionadas em index.html. -
theme.js para troca de temas escuros e claros.
static/output contém os arquivos de áudio WAV preenchidos.
static/json contém o barkwebui.json , que contém informações sobre quaisquer arquivos de áudio gerados.
Temperatura de texto
Este parâmetro afeta como o modelo gera fala do texto. Um valor de temperatura mais alto do texto torna a saída do modelo mais aleatória, enquanto um valor de temperatura de texto mais baixo torna a saída do modelo mais determinista. Em outras palavras, com uma alta temperatura de texto, é mais provável que o modelo gere discurso incomum ou inesperado a partir de um determinado prompt de texto. Por outro lado, com uma temperatura baixa de texto, é mais provável que o modelo grude de perto à saída mais provável. Temperatura da forma de onda
Este parâmetro afeta como o modelo gera a forma de onda de áudio final. Um valor de temperatura da forma de onda mais alto introduz mais aleatoriedade na saída de áudio, o que pode resultar em sons mais incomuns ou modulações de voz. Uma temperatura mais baixa da forma de onda, por outro lado, torna a saída de áudio mais previsível e consistente. Reduza o ruído / redução de ruído (NR)
Reduza o ruído de fundo (não tão bom quanto um limpador aprimorado de IA e muitas vezes difícil de dizer impacto no áudio, dada a aleatoriedade de cada discurso gerado pela casca, mesmo com as mesmas configurações, ele também não pode remover o eco ou a alucinação da IA). Código Ref (Bark_Connector.Py): Se o valor de 'Reduced_noise' for verdadeiro, ele desencadeia redução de ruído no áudio gerado usando a biblioteca Noisereduce. Reduced_noise pega os dados de áudio e a taxa de amostragem como parâmetros e retorna o áudio com ruído reduzido. Se Reduce_Noise for falso, nenhuma redução de ruído será aplicada e o áudio original é usado. Remova o silêncio (RS)
Remova qualquer pausa prolongada ou silêncio (pode não fazer muito, foi incluído para situações em que a voz gerada contém pausas longas por razões desconhecidas). Código Ref (Bark_Connector.py): Se o valor de 'remover_silence' for verdadeiro, ele permite a remoção agressiva do silêncio definindo o VAD (Detecção de Atividade de Voz) no nível 3. A biblioteca Webrtcvad é usada para detecção de atividades de voz. Se remover_silência for falso, o nível do VAD será definido como 0, o que significa que nenhuma remoção de silêncio é aplicada. A taxa de amostragem também teve que ser reduzida para 24000 para 16000 para fazer com que funcione com a biblioteca Webrtcvad. Ajustando a velocidade e o tom de áudio
Alterações na velocidade e afinação podem causar uma quantidade razoável de eco e reverb no áudio de saída. A execução do áudio através de uma ferramenta de áudio de AI de terceiros pode ajudar a remover o eco ou o reverb. Uma biblioteca chamada Librosa é usada para manipular a velocidade e a inclinação do áudio. A velocidade do áudio é ajustada usando a função `Librosa.effects.Time_Stretch`, que se estende ou comprime o áudio por um determinado fator. Se o parâmetro de velocidade passado para a função `generate_voice` não for 1.0 (ou seja, a velocidade do áudio precisará ser alterada), o áudio será atingido pelo tempo pela taxa fornecida. Por exemplo, se a velocidade for 2, a duração do áudio será reduzida pela metade, fazendo com que seja reproduzido duas vezes mais rápido. O tom do áudio é ajustado usando a função `Librosa.effects.pitch_shift`. Esta função muda o tom do áudio por um certo número de meias-passos. Se o parâmetro de afinação passado para a função `generate_voice` não for 0 (ou seja, o tom do áudio precisará ser alterado), o tom do áudio será deslocado pelo número fornecido de meia etapa. Por exemplo, se o passo for 2, o tom do áudio será aumentado em 2 meias etapas. Resultados mais claros de fala e áudio
Você obterá discurso mais limpo e melhores resultados apenas gerando sem NR ou RS verificados e executando uma ferramenta AI-aprimorada como o Adobe Podcast aprimora ou outras ferramentas semelhantes.