iT邦幫忙

2

#1 製作屬於自己的 AI Vtuber

  • 分享至 

  • xImage
  •  

現在AI已經流行了好一陣子,有在關注AI Vtuber的各位一定都知道Vedal(計算機程序員和人工智慧開發者,利用大型語言模型生成了Neuro-sama的回應),像我這個宅宅夢想有一天也有想要有個無限陪聊XDD,出於好奇心這一陣子研究了關於AI的開發與應用,我在這周花了極大量時間做出了一個簡易的AI Vtuber,在這邊想跟大家分享一下開發經歷與製作過程,撰寫文章時能讓自己重新複習一次,是個更好學習得放式!有興趣的話就看下去吧!

首先這篇我會當標題介紹一下我使用的任何資訊與軟體,以及開發完成後的圖示功能介紹,接著後續文章會逐步講解我怎麼步步做出這個AI Vtuber,我會把我做出的部分盡力說明清楚,如說明不清楚請見諒。
https://ithelp.ithome.com.tw/upload/images/20240917/20167256GRTOTXal7U.jpg
最終效果:構建一個使用者介面,利用 Google Gemini API 生成人物對話,通過 EDGE TTS 轉換成語音,並使用 VB-Audio 虛擬音源將語音發送到指定的音頻輸出(例如,直播、錄音軟件等),同時通過 YouTube Data API 與 YouTube 直播聊天室互動。

圖示架構介紹

  • 左邊棕色框:所有測試的python代碼(gemini api、tts、虛擬音源等)與語音生成檔案,因為將所以部分都整合在一起就必須每個部分都要測試。
  • 中間綠色框:透過tkinter來設計簡易使用者介面,tkinter是python標準圖形用戶界面(GUI)庫,創建桌面應用程序的窗口和控件,因設計方便我就使用此套件方便開發。
    Clear Chat:清除對話畫面
    Send:發送你想與ai提問的控鍵
    Live Chat TouTube:連接youtube聊天室
    Stop Live Chat:停止連接youtube聊天室
    選擇音頻輸出設備:選擇從系統或是虛擬音源輸出音源
    設置設備:點擊後會輸出音效測試
  • 右上角黃色框:使用Vtube Studio來測試聲音是否能帶動嘴巴互動(使用模型【Live2D model 】AshArms_Zero),需透過虛擬音源來使嘴巴有開閉效果,本開發無使用任何外掛方式連接。互動效果:文本輸入、聊天室輸入時互動。
  • 右下紫色框:YouTube聊天室輸入框,輸入文字後能自動到對話框顯示留言,AI會自動讀取並交談。

系統核心介紹

  • 文本生成模組(Google Gemini API)
  • 模組人物設計置入
  • 語音合成模組(EDGE TTS)
  • 虛擬音源處理(VB-Audio)
  • 用戶自訂聲音選擇(Vtube Studio Mouth)
  • YouTube 聊天室整合(YouTube Data API)

系統核心介紹(個別用途)

  • Python:使用 Python 作為主要的編程語言,安裝所需的 API 客戶端庫,包括 Google Cloud SDK(用於 Google Gemini API 和 YouTube Data API)、requests(用於 HTTP 調用)、以及與 EDGE TTS API 交互的特定庫。
  • Google Gemini API:註冊和啟用 Gemini API,確保正確的身份驗證機制。(後續會介紹使用方式,通過 API 調用向 Gemini 模型發送消息,生成自然的對話回應。)
    https://ai.google.dev/?authuser=2
  • 人物設定:設定多樣化的角色性格與對話風格。
  • EDGE TTS 語音合成:edge-ttsedge-tts是一個 Python 模組,可讓您從 Python 程式碼中或使用提供的或命令使用 Microsoft Edge 的線上文字轉語音服務edge-playback。
    https://github.com/rany2/edge-tts
  • VB-Audio 虛擬音頻設置:安裝並配置 VB-Audio Virtual Cable,作為虛擬音頻路由。通過系統音頻設置,將 EDGE TTS 生成的語音設置為虛擬音源輸出。
  • Vtube Studio 聲音輸出配置:根據不同場景自訂語音輸出選項。用戶可以選擇不同的語音風格、音頻輸出路徑,以及嘴部動作(Mouth)的同步行為。(需要虛擬音源傳輸到此進行嘴口開閉)
  • YouTube Data API 設置與集成:註冊並啟用 YouTube Data API,設置 API 金鑰憑證,獲取直播網址,抓取後讀取live chat id 聊天室訊息。

此流程通過整合 Google Gemini API、EDGE TTS、VB-Audio 虛擬音頻、Vtube Studio 以及 YouTube Data API,實現了從文本生成到語音合成,再到聊天室實時互動的全面應用。人人都可以製作出自己的AIVT!

後續文章撰寫順序如下

  • Python連接Google Gemini API與AI對話
  • AI人物設定
  • 加入EDGE TTS使AI對話輸出音效
  • VB-Audio虛擬音源下載
  • 用戶自訂輸出音源測試
  • Vtube Studio接音源後嘴吧開閉互動
  • 整合目前功能(模型對話+從Vtube Studio嘴吧輸出音效)
  • YouTube Data API接取live chat id 讀取聊天室資訊

第一步先從tkinter來設計簡易介面吧,剛接觸python的可以先試看看能不能正常運行
(tkinter 是 Python 的一部分,通常不需要額外安裝。)
tkinter 提供了三種主要的布局管理器
pack:按順序將控件放置在窗口中,從上到下或從左到右。
grid:在一個表格網格中安排控件,支持行列結構。
place:允許您以精確的坐標位置放置控件。

import tkinter as tk
root = tk.Tk()
root.title("標題")
label = tk.Label(root, text="你好")
label.pack(pady=10)
def on_button_click():
    label.config(text="被點擊了!")
def on_button_click1():
    label.config(text="好痛!")
button = tk.Button(root, text="點擊我", command=on_button_click)
button.pack(pady=10)
button = tk.Button(root, text="點我", command=on_button_click1)
button.pack(pady=10)
root.mainloop()

本人第一次接觸AI,對很多事情還沒有特別了解還請各位能多多體諒,如有哪邊說明錯誤或不了解可以私訊告知我,有空時都會回復! IG:Cchen.626_
下一篇會介紹Python連接Google Gemini API與AI對話範例~


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言