GCCP-Creator

CC subtitle creator

MIT License

Stars
10

GCCP creator

由來:運用 GCP 服務的流程串接,建立 CC 字幕給影片編輯使用

此專案已在 COSCUP 2022 分享 簡報

Note:

  • Cloud Run 需要設定 eventarc
  • STT 不吃 mp4,檔案輸出時需要轉成 mp3 丟到 cloud storage
  • STT 轉出來會變成 datetime.timedelta 的格式,格式中不是 iterator,因此 API 回來後不能直接使用。參考說明後要用 list 把它轉出來,才能抓到裡面的數值。
  • 原本打算用 WebVTT 格式操作,但在 Youtube 文件中說明了目前仍在初步實行階段,因此在此專案中則是用 SRT 作為使用。
  • 在 GCS 上點開看字幕檔都是亂碼,但進去 Youtube || videojs 中,都會是可以被讀取。

開發測試

上傳到 Cloud Storage 後,CloudRun 會收到訊號,內容很多,整理完主要使用為下列:

{"name": "testing-1.mp3", "bucket": "my-bucket", "contentType": "audio/mpeg"}

部署

透過 gcloud 指令把專案推上去,方便在不需要本地透過 Docker 建立 container,推上去之後會在 GCP 上自動建立 Container 並提供給 CloudRUn 使用。

git clone https://github.com/louis70109/GCCP-Creator.git
cd GCCP-Creator
gcloud run deploy nijia-cloud-run-example-1 --source .

參考

操作方法

  1. 到 Cloud Storage 中先建立一個空的 Bucket

  2. 選擇稍早推上去的 CloudRun app,選擇上面的 add eventarc 建立一個事件觸發裝置。

  1. 因為此範例使需要上傳檔案,因此這邊就監聽 Cloud Storage 的事件,設定如下:
  1. 把預計要轉成文字的影片檔輸出成 MP3 後,放進去 Cloud Storage。
  1. 因為有觸發 Speech-To-Text,Cloud Storage 處理完之後會建立一個 SRT 字幕檔並存回去。
  1. 檔案下載完之後,把原本剪好的影片檔上傳到 youtube 上,在上傳的分頁中會找到 新增字幕,給他大力的點下去
  1. 這個專案會幫忙建立有時間序列的 SRT 字幕,點下去後找剛剛存個字幕檔。
  1. 雖然透過 STT 切出來的檔案都到微秒,看起來好像會對不上,然而實際上在播放時都是很順暢的!Youtube 的編輯器寫得很棒,大家可以試試看!

License

MIT