v3.5 Twitch Streamer もサポートされるようになりました
v3.0 では、VoiceVox を使用した日本語 TTS だけがサポートされるようになりました。ただし、RU (ロシア語)、EN (英語)、DE (ドイツ語)、ES (スペイン語)、FR (フランス語)、TT (タタール語)、UA (ウクライナ語)、UZ (ウズベク語)、XAL (カルムイク語) の TTS もサポートしています。インド語 (ヒンディー語)、Seliro TTS を使用。 Seliro TTS の使用方法の詳細については、 run.py
のvoicevox_tts
seliro_tts
に変更します。
このプロジェクトは shioridotdev からインスピレーションを受け、VoiceVox Engine、DeepL、Whisper OpenAI、Seliro TTS、VtubeStudio などのさまざまなテクノロジーを利用して AI ワイフ バーチャル YouTuber を作成します。
pip install -r requirements.txt
api_key = 'yourapikey'
owner_name = "Ardha"
ライブストリームに使用したい場合は、 run.py
でブラックリストに登録するユーザーのリストを作成します。
blacklist = ["Nightbot", "streamelements"]
アシスタントの伝承やアイデンティティを変更します。 characterConfigPinaidentity.txt
にある txt ファイルを変更します。
Twitch でストリーミングしたい場合は、 utils/twitch_config.py
にある設定ファイルを変更する必要があります。ここからトークンを取得してください。トークンは oauth:43rip6j6fgio8n5xly1oum1lph8ikl1 のようになります (このチュートリアルでは偽です)。構成ファイルを変更した後、モード - 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
どちらの TTS を使用するかを選択します。コメントを解除してコメントすることで切り替えられます # 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 エンジンを実行する必要があります。 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
使用する場合は、回答を日本語に変換する必要があります。 OpenAI からの言語の回答は、アシスタントの伝承言語characterConfigPinaidentity.txt
と入力言語によって異なります。 tts = translate_deeplx(text, f"{detect}", "JA")
tts = translate_google(text, f"{detect}", "JA")
DeepLx
DeepL
の無料版です (API キーは必要ありません)。 Deeplx は docker 上で実行できます。または、deepl の通常バージョンを使用したい場合は、 utilstranslate.py
に関数を作成できます。私の国からはDeepL
に登録できないため、 DeepLx
使用しています。 DeepL
の翻訳結果はGoogle翻訳よりも正確かつカジュアルです。ただし、簡単な方法が必要な場合は、Google 翻訳を使用してください。
プログラムからのオーディオ出力をVtubestudio
の入力として使用したい場合。 Virtual Cable
を使用してデスクトップ オーディオをキャプチャし、それを VtubeStudio マイクの入力として使用する必要があります。
このプログラムをライブ ストリーミングに使用する場合は、リアルタイム キャプション/字幕用の OBS テキストの入力としてchat.txt
とoutput.txt
使用します。
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()
この問題を解決するもう 1 つのオプションは、OpenAI ライブラリを最新バージョンにアップグレードすることです。プログラムがあなたの音声/文章をキャプチャしていることを確認し、 input.wav
聞いてみてください。
このライブラリはインストールするのが少し難しいです。この問題に直面した場合は、 utils/TTS.py
のkatakana_converter
使用せずに削除してください。この関数はオプションであり、それなしでプログラムを実行できます。 utils/TTS.py
のこの 2 行を削除します。
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 など、このプロジェクトで使用されたテクノロジーの作成者に特別に感謝します。