v3.5 Unterstützt jetzt auch Twitch Streamer
v3.0 unterstützt jetzt nicht nur japanisches TTS mit VoiceVox. Unterstützt aber auch TTS für RU (Russisch), EN (Englisch), DE (Deutsch), ES (Spanisch), FR (Französisch), TT (Tatarisch), UA (Ukrainisch), UZ (Usbekisch), XAL (Kalmückisch), Indisch (Hindi), mit Seliro TTS. Ändern Sie voicevox_tts
auf run.py
in seliro_tts
, um detaillierte Informationen zur Verwendung von Seliro TTS zu erhalten
Dieses Projekt ist von Shioridotdev inspiriert und nutzt verschiedene Technologien wie VoiceVox Engine, DeepL, Whisper OpenAI, Seliro TTS und VtubeStudio, um einen virtuellen YouTuber mit KI-Waifu zu erstellen.
pip install -r requirements.txt
api_key = 'yourapikey'
owner_name = "Ardha"
Wenn Sie es für Livestreams verwenden möchten, erstellen Sie eine Liste der Benutzer, die Sie auf run.py
auf die schwarze Liste setzen möchten
blacklist = ["Nightbot", "streamelements"]
Ändern Sie die Geschichte oder Identität Ihres Assistenten. Ändern Sie die TXT-Datei unter characterConfigPinaidentity.txt
Wenn Sie auf Twitch streamen möchten, müssen Sie die Konfigurationsdatei unter utils/twitch_config.py
ändern. Holen Sie sich hier Ihren Token. Ihr Token sollte etwa so aussehen: oauth:43rip6j6fgio8n5xly1oum1lph8ikl1 (für dieses Tutorial gefälscht). Nachdem Sie die Konfigurationsdatei geändert haben, können Sie das Programm mit Modus - 3 starten
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
oder Silero
. Entfernen Sie den Kommentar und kommentieren, um zwischen ihnen zu wechseln # 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")
Wenn Sie VoiceVox verwenden möchten, müssen Sie zuerst die VoiceVox Engine ausführen. Sie können sie lokal mit VoiceVox Docker oder auf Google Colab mit VoiceVox Colab ausführen. Wenn Sie Colab verwenden, ändern Sie voicevox_url
in utilsTTS.py
über den Link, den Sie von Colab erhalten.
voicevox_url = 'http://localhost:50021'
Wenn Sie die Stimmenliste von VoiceVox sehen möchten, können Sie dieses VoiceVox überprüfen und die Sprecher-ID in speaker.json
sehen und sie dann in utils/TTS.py
ändern. Für Seliro Voice-Beispiele können Sie sich diese Seliro-Beispiele ansehen
VoiceVox
verwenden möchten, da VoiceVox nur Eingaben auf Japanisch akzeptiert. Die Sprachantwort von OpenAI hängt von der Sprache Ihres Assistenten characterConfigPinaidentity.txt
und der Eingabesprache ab tts = translate_deeplx(text, f"{detect}", "JA")
tts = translate_google(text, f"{detect}", "JA")
DeepLx
ist eine kostenlose Version von DeepL
(kein API-Schlüssel erforderlich). Sie können Deeplx auf Docker ausführen, oder wenn Sie die normale Version von Deepl verwenden möchten, können Sie die Funktion auf utilstranslate.py
erstellen. Ich verwende DeepLx
, weil ich mich aus meinem Land nicht bei DeepL
registrieren kann. Das Übersetzungsergebnis von DeepL
ist genauer und einfacher als das von Google Translate. Wenn Sie es jedoch einfacher haben möchten, verwenden Sie einfach Google Translate.
Wenn Sie die Audioausgabe des Programms als Eingabe für Ihr Vtubestudio
verwenden möchten. Sie müssen Ihr Desktop-Audio mit Virtual Cable
aufnehmen und es als Eingang für das VtubeStudio-Mikrofon verwenden.
Wenn Sie planen, dieses Programm für Live-Streaming zu verwenden, verwenden Sie chat.txt
und output.txt
als Eingabe für OBS Text für Echtzeituntertitel/Untertitel
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()
Ändern Sie diese Codezeile in diese. Dies wird Ihnen helfen, weitere Informationen über den Fehler zu erhalten
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()
Eine weitere Möglichkeit, dieses Problem zu lösen, besteht darin, die OpenAI-Bibliothek auf die neueste Version zu aktualisieren. Stellen Sie sicher, dass das Programm Ihre Stimme/Ihren Satz erfasst und versuchen Sie, die input.wav
zu hören
Die Installation dieser Bibliothek ist etwas schwierig. Wenn dieses Problem auftritt, können Sie den katakana_converter
einfach löschen und nicht für utils/TTS.py
verwenden. Diese Funktion ist optional, Sie können das Programm auch ohne sie ausführen. Löschen Sie diese beiden Zeilen in utils/TTS.py
from utils.katakana import *
katakana_text = katakana_converter(tts)
und übergeben Sie einfach die tts
an die nächste Codezeile
params_encoded = urllib.parse.urlencode({'text': tts, 'speaker': 46})
Dieses Projekt ist von der Arbeit von Shioridotdev inspiriert. Besonderer Dank geht an die Entwickler der in diesem Projekt verwendeten Technologien, darunter VoiceVox Engine, DeepL, Whisper OpenAI und VtubeStudio.