v3.5 現在也支援 Twitch Streamer
v3.0 現在不僅支援使用 VoiceVox 的日文 TTS。但也支援RU(俄語)、EN(英語)、DE(德語)、ES(西班牙語)、FR(法語)、TT(韃靼語)、UA(烏克蘭語)、UZ(烏茲別克語)、XAL(卡爾梅克語)的TTS,印度語(印地語),使用 Seliro TTS。將run.py
上的voicevox_tts
更改為seliro_tts
,以了解如何使用 Seliro TTS 的詳細信息
該專案受到shioridotdev的啟發,利用VoiceVox Engine、DeepL、Whisper OpenAI、Seliro TTS和VtubeStudio等多種技術來創建一個AI waifu虛擬YouTuber。
pip install -r requirements.txt
api_key = 'yourapikey'
owner_name = "Ardha"
如果您想將其用於直播,請在run.py
上建立一個要列入黑名單的使用者列表
blacklist = ["Nightbot", "streamelements"]
改變你的助手的傳說或身分。更改 txt 檔案: characterConfigPinaidentity.txt
如果您想在 Twitch 上進行串流傳輸,則需要更改utils/twitch_config.py
中的設定檔。從這裡獲取您的令牌。您的令牌應類似 oauth:43rip6j6fgio8n5xly1oum1lph8ikl1 (本教學為假)。更改設定檔後,可以使用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
或Silero
。取消註釋和註釋以在它們之間切換 # 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")
如果您想使用VoiceVox,您需要先執行VoiceVox Engine。您可以使用 VoiceVox Docker 在本機上運行它們,也可以使用 VoiceVox Colab 在 Google Colab 上執行它們。如果您使用 Colab,請使用從 Colab 獲得的連結來變更utilsTTS.py
上的voicevox_url
。
voicevox_url = 'http://localhost:50021'
如果你想查看 VoiceVox 的語音列表,你可以檢查此 VoiceVox 並在speaker.json
上查看揚聲器 id,然後在utils/TTS.py
上更改它。對於 Seliro 語音範例,您可以查看此 Seliro 範例
VoiceVox
,您需要將答案轉換為日語,因為 VoiceVox 只接受日文輸入。 OpenAI 的語言答案將取決於您的助手傳說語言characterConfigPinaidentity.txt
和輸入語言 tts = translate_deeplx(text, f"{detect}", "JA")
tts = translate_google(text, f"{detect}", "JA")
DeepLx
是DeepL
的免費版本(無需 API 金鑰)。你可以在docker上執行Deeplx,或者如果你想使用普通版本的deepl,你可以在utilstranslate.py
上建立該函數。我使用DeepLx
是因為我無法在我的國家註冊DeepL
。 DeepL
的翻譯結果比Google翻譯更準確、更隨意。但如果你想要簡單的方法,只要使用Google翻譯即可。
如果您想使用程式的音訊輸出作為Vtubestudio
的輸入。您需要使用Virtual Cable
捕獲桌面音訊並將其用作 VtubeStudio 麥克風的輸入。
如果您打算使用此程式進行即時串流使用chat.txt
和output.txt
作為OBS文字上的即時字幕/字幕的輸入
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()
將這行程式碼更改為此。這將幫助您獲取有關錯誤的更多信息
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()
解決此問題的另一種選擇是,您可以將 OpenAI 庫升級到最新版本。確保程式捕獲您的聲音/句子,嘗試聽到input.wav
這個函式庫的安裝有點棘手。如果您遇到此問題,您可以刪除並且不要使用utils/TTS.py
上的katakana_converter
。該功能是可選的,您可以在沒有它的情況下運行程式。刪除utils/TTS.py
上的這兩行
from utils.katakana import *
katakana_text = katakana_converter(tts)
然後將tts
傳遞到程式碼的下一行
params_encoded = urllib.parse.urlencode({'text': tts, 'speaker': 46})
該項目的靈感來自 shioridotdev 的工作。特別感謝該專案中使用的技術的創建者,包括 VoiceVox Engine、DeepL、Whisper OpenAI 和 VtubeStudio。