v3.5 Maintenant, il prend également en charge Twitch Streamer
v3.0 Désormais, il prend non seulement en charge la TTS japonaise à l'aide de VoiceVox. Mais prend également en charge TTS pour RU (russe), EN (anglais), DE (allemand), ES (espagnol), FR (français), TT (Tatar), UA (ukrainien), UZ (ouzbek), XAL (Kalmouk), Indic (hindi), en utilisant Seliro TTS. Remplacez voicevox_tts
sur run.py
par seliro_tts
, pour des informations détaillées sur l'utilisation de Seliro TTS
Ce projet s'inspire de shioridotdev et utilise diverses technologies telles que VoiceVox Engine, DeepL, Whisper OpenAI, Seliro TTS et VtubeStudio pour créer un YouTuber virtuel AI waifu.
pip install -r requirements.txt
api_key = 'yourapikey'
owner_name = "Ardha"
si vous souhaitez l'utiliser pour la diffusion en direct, créez une liste d'utilisateurs que vous souhaitez mettre sur liste noire sur run.py
blacklist = ["Nightbot", "streamelements"]
Changez la tradition ou l'identité de votre assistant. Modifiez le fichier txt dans characterConfigPinaidentity.txt
Si vous souhaitez diffuser sur Twitch, vous devez modifier le fichier de configuration sur utils/twitch_config.py
. Obtenez votre jeton ici. Votre jeton devrait ressembler à oauth:43rip6j6fgio8n5xly1oum1lph8ikl1 (faux pour ce tutoriel). Après avoir modifié le fichier de configuration, vous pouvez démarrer le programme en utilisant le 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
. Décommentez et commentez pour basculer entre eux # 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 vous souhaitez utiliser VoiceVox, vous devez d'abord exécuter VoiceVox Engine. Vous pouvez les exécuter en local à l'aide de VoiceVox Docker ou sur Google Colab à l'aide de VoiceVox Colab. Si vous utilisez celui de Colab, modifiez voicevox_url
sur utilsTTS.py
en utilisant le lien que vous obtenez de Colab.
voicevox_url = 'http://localhost:50021'
si vous souhaitez voir la liste vocale de VoiceVox, vous pouvez vérifier ce VoiceVox et voir l'identifiant du haut-parleur sur speaker.json
puis le modifier sur utils/TTS.py
. Pour un échantillon de Seliro Voice, vous pouvez consulter ces échantillons de Seliro
VoiceVox
, car VoiceVox n'accepte que les saisies en japonais. La réponse linguistique d'OpenAI dépendra de la langue de votre assistant, characterConfigPinaidentity.txt
et de la langue d'entrée. tts = translate_deeplx(text, f"{detect}", "JA")
tts = translate_google(text, f"{detect}", "JA")
DeepLx
est une version gratuite de DeepL
(aucune clé API requise). Vous pouvez exécuter Deeplx sur Docker, ou si vous souhaitez utiliser la version normale de deepl, vous pouvez créer la fonction sur utilstranslate.py
. J'utilise DeepLx
car je ne peux pas m'inscrire sur DeepL
depuis mon pays. Le résultat de la traduction de DeepL
est plus précis et plus simple que celui de Google Translate. Mais si vous souhaitez une méthode simple, utilisez simplement Google Translate.
Si vous souhaitez utiliser la sortie audio du programme comme entrée pour votre Vtubestudio
. Vous devrez capturer l'audio de votre bureau à l'aide Virtual Cable
et l'utiliser comme entrée sur le microphone VtubeStudio.
Si vous envisagez d'utiliser ce programme pour la diffusion en direct, utilisez chat.txt
et output.txt
comme entrée sur le texte OBS pour les légendes/sous-titres en temps réel.
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()
Remplacez cette ligne de code par celle-ci. Cela vous aidera à obtenir plus d'informations sur l'erreur
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()
Une autre option pour résoudre ce problème, vous pouvez mettre à niveau la bibliothèque OpenAI vers la dernière version. Assurez-vous que le programme capture votre voix/phrase, essayez d'entendre l' input.wav
cette bibliothèque est un peu délicate à installer. Si vous rencontrez ce problème, vous pouvez simplement supprimer et ne pas utiliser le katakana_converter
sur utils/TTS.py
. Cette fonction est facultative, vous pouvez exécuter le programme sans elle. Supprimez ces deux lignes sur utils/TTS.py
from utils.katakana import *
katakana_text = katakana_converter(tts)
et passez simplement le tts
à la ligne suivante du code
params_encoded = urllib.parse.urlencode({'text': tts, 'speaker': 46})
Ce projet s'inspire du travail de shioridotdev. Un merci spécial aux créateurs des technologies utilisées dans ce projet, notamment VoiceVox Engine, DeepL, Whisper OpenAI et VtubeStudio.