【🎧 common-voice 語音資料蒐集程式 】架設啟動的一些雷坑 💣

更新 發佈閱讀 9 分鐘
vocus|新世代的創作平台


Common Voice 是 Mozilla 發起的一個開源專案,目的是建立一個大型、公開、自由可用的語音資料庫,讓任何人(尤其是研究人員、開發者、公司)都可以用來訓練語音辨識、語音合成(TTS)等人工智慧應用。


很幸運的, Common Voice也將原始碼提供給大家使用, 在 🔍 https://github.com/common-voice/common-voice/tree/main 可以找到。


好了, 讓我們進入正題, 在啟動Common Voice的過程中也不是這麼的順利, 因此期望透過我們的分享, 讓需要的朋友可以省去踩坑的過程, 您的訂閱與愛心都是我們分享的動力, 真心期待我們可以一起學習及成長。


🚀 首先讓我們啟動

docker compose up web

一開始啟動會連不到db, 這部份需要等待一段時間後再啟動web, 讓它重新連線。


問題一: 我的權限不夠高嗎?

咦! 啟動時竟然發生這問題…, 難道我沒有權限或權限不夠?

web        | Failed to access /.cache/Cypress:
web |
web | EACCES: permission denied, mkdir '/.cache'


主要是因為我們在docker/Dockerfile有設定權限的參數:

ARG UID=10001
ARG GID=10001


但我們啟動時, 根據文件的建議, 設定為主機的帳號集群組:

web:
build:
context: .
dockerfile: docker/Dockerfile
container_name: web
user: '${UID:-10001}:${GID:-10001}'


這樣一來存取 /.cache 當然會出問題呀, 那怎麼辦呢? 我們可以更改一下位置, 在compose的環境變數這樣做

environment:
- DOTENV_CONFIG_PATH=/code/.env-local-docker
- CYPRESS_CACHE_FOLDER=/code/.cache/Cypress



問題二: 為什麼Cannot read properties of null (reading 'includes')

詳細的錯誤我們貼來這邊一起看看。

web  | [BE] unhandled promise rejection TypeError: Cannot read properties of null (reading 'includes')
web | [BE] at resolveWellKnownUri (/code/node_modules/openid-client/lib/issuer.js:179:23)
web | [BE] at Function.discover (/code/node_modules/openid-client/lib/issuer.js:142:26)
web | [BE] at setupAuthRouter (/code/server/src/auth-router.ts:36:34)
web | [BE] at Server.setupApp (/code/server/src/server.ts:125:36)
web | [BE] at runServer (/code/server/src/main.ts:27:18)
web | [BE] at Object.<anonymous> (/code/server/src/main.ts:34:1)
web | [BE] at Module._compile (node:internal/modules/cjs/loader:1364:14)
web | [BE] at Object.Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
web | [BE] at Module.load (node:internal/modules/cjs/loader:1203:32)
web | [BE] at Function.Module._load (node:internal/modules/cjs/loader:1019:12)
web | [BE] at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
web | [BE] at node:internal/main/run_main_module:28:49

仔細追查後發現到關鍵的 「openid-client」這很有可能跟認證與授權有關, 因此讓我們再詳細的翻閱文件看看究竟有什麼貓膩! 幸好皇天不負苦心人, 讓我們在 https://github.com/common-voice/common-voice/blob/main/docs/DEVELOPMENT.md#authentication 這裡找到了Auth相關的配置。


要怎麼進行這個部份呢?

  1. Create an Auth0 account.
  2. Click "Applications" from the dashboard. Create a new one, or use the default application.
  3. On "Applications" still, next to your application, click the "three dots" icon, then Settings.
  4. Add http://localhost:9000/callback to the "Allowed Callback URLs" list.
  5. Copy the Auth0 application settings into your configuration file. These are found in the same Settings tab as the "Allowed Callback URLs".


我們只要照著上述的步驟就能夠得到我們配置所需的值。


讓我們在 .env-local-docker 配置以下的設定吧!

CV_AUTH0_DOMAIN="<domain_here>"
CV_AUTH0_CLIENT_ID="<client_id_here>"
CV_AUTH0_CLIENT_SECRET="<client_secret_here>"



問題三: 順利啟動了, 但卻一直導到 404 頁面

我們可以看到 http://localhost:9002/en/404 會一直不斷的請求 /translations。

vocus|新世代的創作平台


這是因為我們的語言缺失, 因此我們需要再刷一次這樣的腳本, 讓語言資訊同步到快取伺服器。

docker exec -it redis redis-cli FLUSHALL


接著我們重新再進入到 http://localhost:9000 就可以看到頁面順利的進入了。

vocus|新世代的創作平台


結語

以上是我們在架設Common Voice時遇到的一些狀況, 我們希望透過分享, 讓大家都能夠避開這些坑, 也希望這篇文章真的有幫助到遇到困難的你們, 讓我們共同突破難關, 讓軟體品質越來越好。

留言
avatar-img
阿Han的沙龍
160會員
332內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
阿Han的沙龍的其他內容
2025/06/11
關於Airflow是什麼, 歡迎參考「🔒 阿Han的軟體心法實戰營 - MLOps」, 在開始之前我們也推薦以下兩篇給您閱讀: 【🔒 MLOps - Airflow】使用docker compose架設Airflow 【🔒 MLOps - Airflow】使用DAG流程呼叫Docker O
Thumbnail
2025/06/11
關於Airflow是什麼, 歡迎參考「🔒 阿Han的軟體心法實戰營 - MLOps」, 在開始之前我們也推薦以下兩篇給您閱讀: 【🔒 MLOps - Airflow】使用docker compose架設Airflow 【🔒 MLOps - Airflow】使用DAG流程呼叫Docker O
Thumbnail
2025/05/14
當我們在開發AI應用程式的時候, 常常會使用到onnx, ONNX 是一種開放標準格式,允許不同深度學習框架(如 PyTorch、TensorFlow、Scikit-learn)之間互通,使模型可以在不同平台上運行,而 ONNX Runtime 則是一個高效能的推理引擎,專門用來加速 ONNX
Thumbnail
2025/05/14
當我們在開發AI應用程式的時候, 常常會使用到onnx, ONNX 是一種開放標準格式,允許不同深度學習框架(如 PyTorch、TensorFlow、Scikit-learn)之間互通,使模型可以在不同平台上運行,而 ONNX Runtime 則是一個高效能的推理引擎,專門用來加速 ONNX
Thumbnail
2025/04/30
我們在「【語音合成技術 - GPT-SoVITS】如何架設API伺服器」有分享如何使用Docker來架設GPT-SoVITS的TTS API服務, 但過程中我們卻遇到了一些困難, 相信有深入使用這套TTS服務的朋友應該難免也會遇到這類的問題, 期望透過我們的分享幫助到正在遇到困難的你! 首先我
Thumbnail
2025/04/30
我們在「【語音合成技術 - GPT-SoVITS】如何架設API伺服器」有分享如何使用Docker來架設GPT-SoVITS的TTS API服務, 但過程中我們卻遇到了一些困難, 相信有深入使用這套TTS服務的朋友應該難免也會遇到這類的問題, 期望透過我們的分享幫助到正在遇到困難的你! 首先我
Thumbnail
看更多
你可能也想看
Thumbnail
免費文字轉語音(Free text to speech)免費的線上語音合成工具,使用微軟 AI 語音庫生成仿真人語音,支援 129 種語言,提供三百多種聲音,輸入文本即可線上聆聽和下載 MP3 檔案。
Thumbnail
免費文字轉語音(Free text to speech)免費的線上語音合成工具,使用微軟 AI 語音庫生成仿真人語音,支援 129 種語言,提供三百多種聲音,輸入文本即可線上聆聽和下載 MP3 檔案。
Thumbnail
在簡報設計中,我們有時需要視覺化去表達「語音」的概念,例如是講者介紹、客戶回饋、問答環節等。利用在常見的語音圖案是可行的做法,只是人手自己畫耗費時間,生成式人工智能又未必一下子做到想要的效果。要解決問題,還有第三種可行辦法,免費可商用的字體,同樣可以助你快速建立語音圖案,兼且保留設計的自由度。
Thumbnail
在簡報設計中,我們有時需要視覺化去表達「語音」的概念,例如是講者介紹、客戶回饋、問答環節等。利用在常見的語音圖案是可行的做法,只是人手自己畫耗費時間,生成式人工智能又未必一下子做到想要的效果。要解決問題,還有第三種可行辦法,免費可商用的字體,同樣可以助你快速建立語音圖案,兼且保留設計的自由度。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
  我們在語音初探篇提到TTS的流程可以分成三個部分 :輸入前處理、預測音訊特徵、語音重建,其中輸入前處理的部分上兩篇已經處理完,在進入預測音訊特徵前,讓我們先來理解最後的語音重建部分。
Thumbnail
  我們在語音初探篇提到TTS的流程可以分成三個部分 :輸入前處理、預測音訊特徵、語音重建,其中輸入前處理的部分上兩篇已經處理完,在進入預測音訊特徵前,讓我們先來理解最後的語音重建部分。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
「人工智障計畫」也執行了好一段時間了,關於這個專案中文字轉語音的方案,在之前的筆記中也有稍微提到,為了達成能自訂聲線,並且能完全離線運作兩個條件,我已經做過了不少嘗試。
Thumbnail
「人工智障計畫」也執行了好一段時間了,關於這個專案中文字轉語音的方案,在之前的筆記中也有稍微提到,為了達成能自訂聲線,並且能完全離線運作兩個條件,我已經做過了不少嘗試。
Thumbnail
  在 AI 應用中,圖像、語音、文字三種可以說是主要應用,其中我一直以來都是專注於圖像上的研究,對於另兩種僅止於淺嚐,接下來就往音訊上研究看看,先從入門級的Text-To-Speech (TTL) 入場並一個個嘗試其他類型的應用,那麼,就讓我們開始吧。
Thumbnail
  在 AI 應用中,圖像、語音、文字三種可以說是主要應用,其中我一直以來都是專注於圖像上的研究,對於另兩種僅止於淺嚐,接下來就往音訊上研究看看,先從入門級的Text-To-Speech (TTL) 入場並一個個嘗試其他類型的應用,那麼,就讓我們開始吧。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
上篇我們簡單的了解了 TTS 想要達到的目標,但是對於訓練資料的處理、網路架構、損失函數、輸出分析等考慮到篇幅尚未解釋清楚,這篇將針對訓練資料處理中的文字部分進行詳細說明,讓我們開始吧。
Thumbnail
上篇我們簡單的了解了 TTS 想要達到的目標,但是對於訓練資料的處理、網路架構、損失函數、輸出分析等考慮到篇幅尚未解釋清楚,這篇將針對訓練資料處理中的文字部分進行詳細說明,讓我們開始吧。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
文字MP3專業版是簡單且強大的工具,會編輯文字就能創造出專業級配音。簡單 ﹑容易上手,像使用Word,無需剪輯經驗,輕鬆完成調整語速﹑插入空秒﹑插入背景音樂或音效等方面的製作。提供多種語言和配音員選擇,包括純正的臺灣口音。這個工具能應用於各種情境,如教育訓練簡報、有聲書、Podcast等。
Thumbnail
文字MP3專業版是簡單且強大的工具,會編輯文字就能創造出專業級配音。簡單 ﹑容易上手,像使用Word,無需剪輯經驗,輕鬆完成調整語速﹑插入空秒﹑插入背景音樂或音效等方面的製作。提供多種語言和配音員選擇,包括純正的臺灣口音。這個工具能應用於各種情境,如教育訓練簡報、有聲書、Podcast等。
Thumbnail
這篇文章介紹瞭如何將聲音檔轉換為逐字稿,並且提到了使用雲端硬碟安裝colaboratory的方法。這篇文章指出了逐字稿的重要性,以及如何透過逐字稿做文字呈現方式的轉變。如果你需要處理會議紀錄或聲音檔,這些方法都能幫助你更輕鬆的進行工作。
Thumbnail
這篇文章介紹瞭如何將聲音檔轉換為逐字稿,並且提到了使用雲端硬碟安裝colaboratory的方法。這篇文章指出了逐字稿的重要性,以及如何透過逐字稿做文字呈現方式的轉變。如果你需要處理會議紀錄或聲音檔,這些方法都能幫助你更輕鬆的進行工作。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News