v3.5 Теперь он также поддерживает Twitch Streamer.
v3.0 Теперь поддерживает не только японский TTS с использованием VoiceVox. Но также поддерживает TTS для RU (русский), EN (английский), DE (немецкий), ES (испанский), FR (французский), TT (татарский), UA (украинский), UZ (узбекский), XAL (калмыцкий), Индийский язык (хинди), с использованием Seliro TTS. Измените voicevox_tts
в run.py
на seliro_tts
, чтобы получить подробную информацию о том, как использовать Seliro TTS.
Этот проект вдохновлен shioridotdev и использует различные технологии, такие как VoiceVox Engine, DeepL, Whisper OpenAI, Seliro TTS и VtubeStudio, для создания виртуального ютубера AI Waifu.
pip install -r requirements.txt
api_key = 'yourapikey'
owner_name = "Ardha"
если вы хотите использовать его для прямой трансляции, создайте список пользователей, которых вы хотите занести в черный список, на run.py
blacklist = ["Nightbot", "streamelements"]
Измените знания или личность вашего помощника. Измените текстовый файл по characterConfigPinaidentity.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
. Раскомментируйте и прокомментируйте, чтобы переключаться между ними. # 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 или в Google Colab с помощью VoiceVox Colab. Если вы используете Colab, измените voicevox_url
в utilsTTS.py
используя ссылку, полученную от Colab.
voicevox_url = 'http://localhost:50021'
Если вы хотите просмотреть список голосов VoiceVox, вы можете проверить этот VoiceVox и увидеть идентификатор динамика в speaker.json
, а затем изменить его в utils/TTS.py
. Для образца Seliro Voice вы можете проверить эти образцы Seliro.
VoiceVox
, поскольку 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
. Я использую DeepLx
, потому что не могу зарегистрироваться на DeepL
из своей страны. Результат перевода от DeepL
является более точным и простым, чем Google Translate. Но если вам нужен простой способ, просто используйте Google Translate.
Если вы хотите использовать аудиовыход программы в качестве входа для вашего 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
эту библиотеку немного сложно установить. Если вы столкнулись с этой проблемой, вы можете просто удалить и не использовать katakana_converter
в utils/TTS.py
. Эта функция необязательна, вы можете запустить программу без нее. Удалите эти две строки в utils/TTS.py
from utils.katakana import *
katakana_text = katakana_converter(tts)
и просто передайте tts
в следующую строку кода
params_encoded = urllib.parse.urlencode({'text': tts, 'speaker': 46})
Этот проект вдохновлен творчеством Шиоридодева. Особая благодарность создателям технологий, использованных в этом проекте, включая VoiceVox Engine, DeepL, Whisper OpenAI и VtubeStudio.