v3.5 Agora também suporta Twitch Streamer
v3.0 Agora não suporta apenas TTS japonês usando VoiceVox. Mas também suporta TTS para RU (Russo), EN (Inglês), DE (Alemão), ES (Espanhol), FR (Francês), TT (Tatar), UA (Ucraniano), UZ (Uzbeque), XAL (Kalmyk), Índico (Hindi), usando Seliro TTS. Altere voicevox_tts
em run.py
para seliro_tts
, para obter informações detalhadas sobre como usar o Seliro TTS
Este projeto é inspirado em shioridotdev e utiliza várias tecnologias como VoiceVox Engine, DeepL, Whisper OpenAI, Seliro TTS e VtubeStudio para criar um YouTuber virtual AI waifu.
pip install -r requirements.txt
api_key = 'yourapikey'
owner_name = "Ardha"
se quiser usá-lo para transmissão ao vivo, crie uma lista de usuários que deseja colocar na lista negra em run.py
blacklist = ["Nightbot", "streamelements"]
Mude a tradição ou a identidade do seu assistente. Altere o arquivo txt em characterConfigPinaidentity.txt
Se você deseja transmitir no Twitch, você precisa alterar o arquivo de configuração em utils/twitch_config.py
. Obtenha seu token aqui. Seu token deve ser parecido com oauth:43rip6j6fgio8n5xly1oum1lph8ikl1 (falso para este tutorial). Depois de alterar o arquivo de configuração, você pode iniciar o programa usando Mode - 3
server = 'irc.chat.twitch.tv'
port = 6667
nickname = 'testing' # You don't need to change this
token = 'oauth:43rip6j6fgio8n5xly1oum1lph8ikl1' # get it from https://twitchapps.com/tmi/.
user = 'ardha27' # Your Twitch username
channel = '#aikohound' # The channel you want to retrieve messages from
VoiceVox
ou Silero
. Remova o comentário e comente para alternar entre eles # Choose between the available TTS engines
# Japanese TTS
voicevox_tts(tts)
# Silero TTS, Silero TTS can generate English, Russian, French, Hindi, Spanish, German, etc. Uncomment the line below. Make sure the input is in that language
# silero_tts(tts_en, "en", "v3_en", "en_21")
Se quiser usar o VoiceVox, você precisa primeiro executar o VoiceVox Engine. Você pode executá-los localmente usando VoiceVox Docker ou no Google Colab usando VoiceVox Colab. Se você usar o Colab, altere voicevox_url
em utilsTTS.py
usando o link obtido do Colab.
voicevox_url = 'http://localhost:50021'
se você quiser ver a lista de vozes do VoiceVox, você pode verificar este VoiceVox e ver o ID do alto-falante em speaker.json
e alterá-lo em utils/TTS.py
. Para o exemplo do Seliro Voice, você pode conferir estes exemplos do Seliro
VoiceVox
, porque o VoiceVox só aceita entrada em japonês. A resposta do idioma do OpenAI dependerá do idioma do seu assistente characterConfigPinaidentity.txt
e do idioma de entrada tts = translate_deeplx(text, f"{detect}", "JA")
tts = translate_google(text, f"{detect}", "JA")
DeepLx
é uma versão gratuita do DeepL
(não é necessária chave de API). Você pode executar o Deeplx no docker ou, se quiser usar a versão normal do deepl, pode criar a função em utilstranslate.py
. Eu uso DeepLx
porque não consigo me registrar no DeepL
do meu país. O resultado da tradução do DeepL
é mais preciso e casual do que o Google Translate. Mas se você quiser o jeito mais simples, é só usar o Google Tradutor.
Se você quiser usar a saída de áudio do programa como entrada para o seu Vtubestudio
. Você precisará capturar o áudio da sua área de trabalho usando Virtual Cable
e usá-lo como entrada no microfone VtubeStudio.
Se você planeja usar este programa para transmissão ao vivo, use chat.txt
e output.txt
como entrada no texto OBS para legendas/legendas em tempo real
def transcribe_audio(file):
global chat_now
try:
audio_file= open(file, "rb")
# Translating the audio to English
# transcript = openai.Audio.translate("whisper-1", audio_file)
# Transcribe the audio to detected language
transcript = openai.Audio.transcribe("whisper-1", audio_file)
chat_now = transcript.text
print ("Question: " + chat_now)
except:
print("Error transcribing audio")
return
result = owner_name + " said " + chat_now
conversation.append({'role': 'user', 'content': result})
openai_answer()
Mude esta linha de código para isto. Isso ajudará você a obter mais informações sobre o erro
def transcribe_audio(file):
global chat_now
audio_file= open(file, "rb")
# Translating the audio to English
# transcript = openai.Audio.translate("whisper-1", audio_file)
# Transcribe the audio to detected language
transcript = openai.Audio.transcribe("whisper-1", audio_file)
chat_now = transcript.text
print ("Question: " + chat_now)
result = owner_name + " said " + chat_now
conversation.append({'role': 'user', 'content': result})
openai_answer()
Outra opção para resolver este problema, você pode atualizar a biblioteca OpenAI para a versão mais recente. Certifique-se de que o programa capture sua voz/frase, tente ouvir o input.wav
esta biblioteca é um pouco complicada de instalar. Se você estiver enfrentando esse problema, basta excluir e não usar o katakana_converter
em utils/TTS.py
. Essa função é opcional, você pode executar o programa sem ela. Exclua estas duas linhas em utils/TTS.py
from utils.katakana import *
katakana_text = katakana_converter(tts)
e apenas passe o tts
para a próxima linha do código
params_encoded = urllib.parse.urlencode({'text': tts, 'speaker': 46})
Este projeto é inspirado no trabalho de shioridotdev. Agradecimentos especiais aos criadores das tecnologias utilizadas neste projeto, incluindo VoiceVox Engine, DeepL, Whisper OpenAI e VtubeStudio.