前言
由 openAI 開發的三大模型:
- WhisperAPI:聲音
- DALL-E:圖像
- GPT:文字
其中這專案使用到的是 WhisperAPI
,一個能達到準確率極高的 speech to text , automatic speech recognition 的 Model。
Google Colab 或 Docker
此專案有兩種運行方式,一種是使用 Google Colab,另一種是使用 Docker
Docker
- 可以用自己的電腦資源進行運算,不用擔心被 Google Colab 限制資源。
- 電腦本身配置要求較高、Docker 吃很多 RAM。
Google Colab
- 電腦若配置較低,可以直接用 Google Colab 的資源進行運算。
- 畢竟是免費的,會限制資源,所以可能會有延遲的問題。
而我個人是使用 Docker,因為小弟本身電腦配置還可以,且流程簡單許多,而且會比較沒有延遲的問題
。
前置作業
有些軟體 Mac 及 Linux 可能不支援,所以此專案是在 Windows 11 上運行,所以以下的步驟都是在 Windows 11 上的操作。
Clone 專案
- 將專案 Clone 至自己本機端
git clone https://github.com/SociallyIneptWeeb/LanguageLeapAI
- 下載此專案需要的套件
pip install -r requirements.txt
下載必要的軟體
- Docker Desktop:下載必要的 Docker Image 用
- Voicemeeter Banana:為了區分應用程序、系統音頻和 python 之間的正確路由和分離音頻
- Virtual Audio Cable:由於 Voicemeeter Banana 提供的虛擬電纜數量不夠,需額外安裝一條虛擬 Cable。
- 下載並安裝 VB-CABLE 驅動程序,解壓所有文件,以管理員模式運行安裝程序。安裝完畢後重新啟動。完成後,即可開始用 Voicemeeter Banana 設置音頻路由
Audio Routing
此步驟要達到的目的:
- 配置系統以使用 Voicemeeter Banana 作為其主要的 I/O 音頻設備
- 將系統音頻和應用程序音頻導向自己的揚聲器/耳機
- 將應用程序的音頻與系統的其他部分隔離,讓 Whisper 進行 ASR(Automatic Speech Recognition)語音辨識技術。
此步驟是為了解決 Whisper API 會嘗試 transcribe 所有音源(System Audio,Apps Audio,TTS Audio) , 所以要讓 Python 指去抓取 Virtual Cable 的 Auxiliary Cable
下載完 Voicemeeter Banana 後,打開 Voicemeeter Banana,並將其設置為系統的主要音頻設備,
點擊 A1
並將 WDM 選項設置為你原本的音頻輸出設備
Docker 啟動本機服務器
去專案目錄執行 docker-compose up -d
,就會看到 Docker 開始下載 Image,並且啟動 Container,
1 | PS C:\Users\young\LanguageLeapAI> docker-compose up -d |
點擊 50021 網址後,去到 http://localhost:50021/docs,就可以看到 voicevox 回傳介面
往下拉找到 GET /speaker
點擊 GET 後 execute 後,就會看到 voicevox 的個個聲優名稱及 ID
看不懂日文沒關係可以直接去 VoiceVox 官網,找自己喜歡的聲音試聽,然後直接複製名稱, 回去 Response body 的畫面按 Ctrl+F
找到對應 ID 即可。
編輯 .env 檔
- 拷貝 .env.example 檔案,並將檔名改為 .env
cp .env.sample .env
- 用 Google 翻譯或 DeepL API,DeepL 翻譯會比較自然, API 每月只提供 500,000 字元的免費翻譯。要用 DeepL 就設置 True,Google 翻譯就 False
- 執行
python src/modules/get_audio_device_ids.py
來抓取自己各個音頻設備的 ID (每次重新開機都會變)。 - 將
MICROPHONE_ID
、VOICEMEETER_INPUT_ID
、CABLE_INPUT_ID
….設定至剛剛抓取出來的對應 ID。
1 | # .env |
相關連結
- Whisper API:由 OpenAI 開發的通用語音識別模型(
Transformer sequence-to-sequence model
),可進行多語言語音識別
、語音翻譯
、口語識別
和語音活動檢測
。 - DeepL Translator:由 DeepL 開發的神經網絡翻譯工具,可以進行多語言翻譯,比 Google 翻譯更自然。
- Voicevox: 日本免費的深度學習語音合成器,非常佛心。
若您覺得這篇文章對您有幫助,歡迎分享出去讓更多人看到⊂◉‿◉つ~
留言版