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

更新於 發佈於 閱讀時間約 9 分鐘
raw-image


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。

raw-image


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

docker exec -it redis redis-cli FLUSHALL


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

raw-image


結語

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

留言
avatar-img
留言分享你的想法!
avatar-img
阿Han的沙龍
130會員
288內容數
哈囉,我是阿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
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
  我們在語音初探篇提到TTS的流程可以分成三個部分 :輸入前處理、預測音訊特徵、語音重建,其中輸入前處理的部分上兩篇已經處理完,在進入預測音訊特徵前,讓我們先來理解最後的語音重建部分。
Thumbnail
  我們在語音初探篇提到TTS的流程可以分成三個部分 :輸入前處理、預測音訊特徵、語音重建,其中輸入前處理的部分上兩篇已經處理完,在進入預測音訊特徵前,讓我們先來理解最後的語音重建部分。
Thumbnail
上篇我們簡單的了解了 TTS 想要達到的目標,但是對於訓練資料的處理、網路架構、損失函數、輸出分析等考慮到篇幅尚未解釋清楚,這篇將針對訓練資料處理中的文字部分進行詳細說明,讓我們開始吧。
Thumbnail
上篇我們簡單的了解了 TTS 想要達到的目標,但是對於訓練資料的處理、網路架構、損失函數、輸出分析等考慮到篇幅尚未解釋清楚,這篇將針對訓練資料處理中的文字部分進行詳細說明,讓我們開始吧。
Thumbnail
  在 AI 應用中,圖像、語音、文字三種可以說是主要應用,其中我一直以來都是專注於圖像上的研究,對於另兩種僅止於淺嚐,接下來就往音訊上研究看看,先從入門級的Text-To-Speech (TTL) 入場並一個個嘗試其他類型的應用,那麼,就讓我們開始吧。
Thumbnail
  在 AI 應用中,圖像、語音、文字三種可以說是主要應用,其中我一直以來都是專注於圖像上的研究,對於另兩種僅止於淺嚐,接下來就往音訊上研究看看,先從入門級的Text-To-Speech (TTL) 入場並一個個嘗試其他類型的應用,那麼,就讓我們開始吧。
Thumbnail
「人工智障計畫」也執行了好一段時間了,關於這個專案中文字轉語音的方案,在之前的筆記中也有稍微提到,為了達成能自訂聲線,並且能完全離線運作兩個條件,我已經做過了不少嘗試。
Thumbnail
「人工智障計畫」也執行了好一段時間了,關於這個專案中文字轉語音的方案,在之前的筆記中也有稍微提到,為了達成能自訂聲線,並且能完全離線運作兩個條件,我已經做過了不少嘗試。
Thumbnail
免費文字轉語音(Free text to speech)免費的線上語音合成工具,使用微軟 AI 語音庫生成仿真人語音,支援 129 種語言,提供三百多種聲音,輸入文本即可線上聆聽和下載 MP3 檔案。
Thumbnail
免費文字轉語音(Free text to speech)免費的線上語音合成工具,使用微軟 AI 語音庫生成仿真人語音,支援 129 種語言,提供三百多種聲音,輸入文本即可線上聆聽和下載 MP3 檔案。
Thumbnail
這篇文章介紹瞭如何將聲音檔轉換為逐字稿,並且提到了使用雲端硬碟安裝colaboratory的方法。這篇文章指出了逐字稿的重要性,以及如何透過逐字稿做文字呈現方式的轉變。如果你需要處理會議紀錄或聲音檔,這些方法都能幫助你更輕鬆的進行工作。
Thumbnail
這篇文章介紹瞭如何將聲音檔轉換為逐字稿,並且提到了使用雲端硬碟安裝colaboratory的方法。這篇文章指出了逐字稿的重要性,以及如何透過逐字稿做文字呈現方式的轉變。如果你需要處理會議紀錄或聲音檔,這些方法都能幫助你更輕鬆的進行工作。
Thumbnail
文字MP3專業版是簡單且強大的工具,會編輯文字就能創造出專業級配音。簡單 ﹑容易上手,像使用Word,無需剪輯經驗,輕鬆完成調整語速﹑插入空秒﹑插入背景音樂或音效等方面的製作。提供多種語言和配音員選擇,包括純正的臺灣口音。這個工具能應用於各種情境,如教育訓練簡報、有聲書、Podcast等。
Thumbnail
文字MP3專業版是簡單且強大的工具,會編輯文字就能創造出專業級配音。簡單 ﹑容易上手,像使用Word,無需剪輯經驗,輕鬆完成調整語速﹑插入空秒﹑插入背景音樂或音效等方面的製作。提供多種語言和配音員選擇,包括純正的臺灣口音。這個工具能應用於各種情境,如教育訓練簡報、有聲書、Podcast等。
Thumbnail
在簡報設計中,我們有時需要視覺化去表達「語音」的概念,例如是講者介紹、客戶回饋、問答環節等。利用在常見的語音圖案是可行的做法,只是人手自己畫耗費時間,生成式人工智能又未必一下子做到想要的效果。要解決問題,還有第三種可行辦法,免費可商用的字體,同樣可以助你快速建立語音圖案,兼且保留設計的自由度。
Thumbnail
在簡報設計中,我們有時需要視覺化去表達「語音」的概念,例如是講者介紹、客戶回饋、問答環節等。利用在常見的語音圖案是可行的做法,只是人手自己畫耗費時間,生成式人工智能又未必一下子做到想要的效果。要解決問題,還有第三種可行辦法,免費可商用的字體,同樣可以助你快速建立語音圖案,兼且保留設計的自由度。
Thumbnail
當我們在進行「語音辨識」的應用開發時, 首先會面臨一個問題, 那就是究竟要怎麼知道哪些段落是「人在說話的區段」, 精確的標示出這些區段之後, 我們除了可以儲存成純對話的段落, 還可以做出時間軸的字幕檔, 應用非常廣泛, 因此學會怎麼用VAD是進入語音領域非常重要的其中一個環節。 VAD代表
Thumbnail
當我們在進行「語音辨識」的應用開發時, 首先會面臨一個問題, 那就是究竟要怎麼知道哪些段落是「人在說話的區段」, 精確的標示出這些區段之後, 我們除了可以儲存成純對話的段落, 還可以做出時間軸的字幕檔, 應用非常廣泛, 因此學會怎麼用VAD是進入語音領域非常重要的其中一個環節。 VAD代表
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News