v3.5 Ahora también es compatible con Twitch Streamer
v3.0 Ahora no solo admite TTS japonés usando VoiceVox. Pero también admite TTS para RU (ruso), EN (inglés), DE (alemán), ES (español), FR (francés), TT (tártaro), UA (ucraniano), UZ (uzbeko), XAL (kalmyk), Indico (hindi), usando Seliro TTS. Cambie voicevox_tts
en run.py
a seliro_tts
para obtener información detallada sobre cómo usar Seliro TTS
Este proyecto está inspirado en shioridotdev y utiliza varias tecnologías como VoiceVox Engine, DeepL, Whisper OpenAI, Seliro TTS y VtubeStudio para crear un YouTuber virtual waifu con IA.
pip install -r requirements.txt
api_key = 'yourapikey'
owner_name = "Ardha"
Si desea usarlo para transmisión en vivo, cree una lista de usuarios que desea incluir en la lista negra en run.py
blacklist = ["Nightbot", "streamelements"]
Cambia la tradición o la identidad de tu asistente. Cambie el archivo txt en characterConfigPinaidentity.txt
Si desea transmitir en Twitch, debe cambiar el archivo de configuración en utils/twitch_config.py
. Obtenga su token desde aquí. Su token debería verse algo así como oauth:43rip6j6fgio8n5xly1oum1lph8ikl1 (falso para este tutorial). Después de cambiar el archivo de configuración, puede iniciar el programa usando el Modo - 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
o Silero
. Descomentar y comentar para cambiar entre ellos # 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")
Si desea utilizar VoiceVox, primero debe ejecutar VoiceVox Engine. Puede ejecutarlos localmente usando VoiceVox Docker o en Google Colab usando VoiceVox Colab. Si usa Colab, cambie voicevox_url
en utilsTTS.py
usando el enlace que obtiene de Colab.
voicevox_url = 'http://localhost:50021'
Si desea ver la lista de voces de VoiceVox, puede consultar este VoiceVox y ver la identificación del altavoz en speaker.json
y luego cambiarla en utils/TTS.py
. Para la muestra de Seliro Voice, puede consultar estas muestras de Seliro
VoiceVox
, porque VoiceVox solo acepta entradas en japonés. La respuesta de idioma de OpenAI dependerá del idioma de la historia de su asistente: characterConfigPinaidentity.txt
y el idioma de entrada. tts = translate_deeplx(text, f"{detect}", "JA")
tts = translate_google(text, f"{detect}", "JA")
DeepLx
es una versión gratuita de DeepL
(no se requiere clave API). Puede ejecutar Deeplx en la ventana acoplable o, si desea utilizar la versión normal de deepl, puede crear la función en utilstranslate.py
. Utilizo DeepLx
porque no puedo registrarme en DeepL
desde mi país. El resultado de la traducción de DeepL
es más preciso e informal que el de Google Translate. Pero si quieres la forma más sencilla, utiliza Google Translate.
Si deseas utilizar la salida de audio del programa como entrada para tu Vtubestudio
. Necesitará capturar el audio de su escritorio usando Virtual Cable
y usarlo como entrada en el micrófono VtubeStudio.
Si planea usar este programa para transmisión en vivo, use chat.txt
y output.txt
como entrada en OBS Text para subtítulos/títulos en tiempo 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()
Cambie esta línea de código a esto. Esto le ayudará a obtener más información sobre el error.
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()
Otra opción para solucionar este problema es actualizar la biblioteca OpenAI a la última versión. Asegúrate de que el programa capture tu voz/frase, intenta escuchar el input.wav
Esta biblioteca es un poco complicada de instalar. Si enfrenta este problema, puede simplemente eliminar y no usar katakana_converter
en utils/TTS.py
. Esa función es opcional, puedes ejecutar el programa sin ella. Elimine estas dos líneas en utils/TTS.py
from utils.katakana import *
katakana_text = katakana_converter(tts)
y simplemente pasa el tts
a la siguiente línea del código
params_encoded = urllib.parse.urlencode({'text': tts, 'speaker': 46})
Este proyecto está inspirado en el trabajo de shioridotdev. Un agradecimiento especial a los creadores de las tecnologías utilizadas en este proyecto, incluidos VoiceVox Engine, DeepL, Whisper OpenAI y VtubeStudio.