v3.5 ตอนนี้ยังรองรับ Twitch Streamer ด้วย
v3.0 ตอนนี้ไม่เพียงรองรับ TTS ภาษาญี่ปุ่นโดยใช้ VoiceVox เท่านั้น แต่ยังรองรับ TTS สำหรับ RU (รัสเซีย), EN (อังกฤษ), DE (เยอรมัน), ES (สเปน), FR (ฝรั่งเศส), TT (ตาตาร์), UA (ยูเครน), UZ (อุซเบก), XAL (Kalmyk) อินดิก (ภาษาฮินดี) โดยใช้ Seliro TTS เปลี่ยน voicevox_tts
บน run.py
เป็น seliro_tts
สำหรับข้อมูลโดยละเอียดเกี่ยวกับวิธีใช้ Seliro TTS
โปรเจ็กต์นี้ได้รับแรงบันดาลใจจาก shioridotdev และใช้เทคโนโลยีต่างๆ เช่น VoiceVox Engine, DeepL, Whisper OpenAI, Seliro TTS และ VtubeStudio เพื่อสร้าง AI waifu virtual 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 (ปลอมสำหรับบทช่วยสอนนี้) หลังจากที่คุณเปลี่ยนไฟล์กำหนดค่าแล้ว คุณสามารถเริ่มโปรแกรมโดยใช้โหมด - 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 Text สำหรับคำบรรยาย/คำบรรยายแบบเรียลไทม์
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})
โครงการนี้ได้รับแรงบันดาลใจจากผลงานของ shioridotdev ขอขอบคุณเป็นพิเศษสำหรับผู้สร้างเทคโนโลยีที่ใช้ในโปรเจ็กต์นี้ รวมถึง VoiceVox Engine, DeepL, Whisper OpenAI และ VtubeStudio