:::

線上檔案語音轉文字字幕:Web Speech to Text / Speech recognition with Google Chrome: Web Speech to Text

語音轉文字的技術已經存在多年,現在這個技術已經普遍到大家手上的智慧型手機都內建了語音辨識輸入系統。除了從麥克風辨識語音之外,我們也很常需要從錄下來的影片、聲音檔中辨識文字。意外的是,這樣的技術其實不需要仰賴什麼雲端科技技術,也不用付出高昂的成本,只需要用你現在瀏覽網頁的Google Chrome就可以開始語音轉文字了。

我參考了陳鍾誠所撰寫的「Google 的語音辨識 API 之使用」,利用瀏覽器內建的Web Speech API開發成網頁應用程式「Web Speech to Text」,搭配Virtual Audio Cable讓電腦的聲音輸出的聲音轉到麥克風輸入,就能讓播放影片或聲音檔案的同時語音辨識為文字,最後轉為字幕檔案格式srt輸出。讓我們來看看怎麼做吧。


環境與準備 / Environment setup

Web Speech to Text需要在有支援Web Speech API的瀏覽器中執行,我推薦使用的是最新版的Google瀏覽器。目前我使用的版本是71.0.3578.98。作業系統是Windows 7。

Web Speech API只能接受從麥克風輸入的聲音,而網頁上播放的影片或聲音檔案則會從喇叭輸出。這時候我們只要使用Virtual Audio Cable,就能讓喇叭輸出的聲音轉向到麥克風輸入,接著便能使用Web Speech API接收聲音進行識別。

因此,在使用Web Speech to Text之前,我們要先準備好Virtual Audio Cable的設定。


虛擬音源線 / Virtual Audio Cable

安裝好Virtual Audio Cable後,你電腦的「聲音」設定裡面會出現Virtual Audio Cable模擬的裝置,在播放裝置和錄音裝置裡面各有一個。以下對「聲音」的設定,不同作業系統的做法都不一樣。以下是我電腦上用Windows 7環境的設定,如果是Windows 10,可以參考重灌狂人的說明。

在Windows 7中,聲音設定可以從通知列裡面找到喇叭圖示的聲音,按右鍵,開啟「播放裝置」或「錄音裝置」。

在「播放裝置」中,將Virtual Audio Cable選為預設。

在「錄音裝置」中,也一樣將VIrtual Audio Cable選為預設。這樣就設定完成了。

將Virtual Audio Cable設為預設值後,電腦輸出的聲就會直接從麥克風輸入。

Virtual Audio Cable的運作概念上就像是上圖一樣,聲音不是從喇叭輸出、麥克風輸入,而是透過Virtual Audio Cable來輸出與輸入。

必須要注意的是,將播放裝置的預設值設為Virutal Audio Cable之後,你的喇叭或耳機等平常輸出聲音的裝置,這時候就不會發出聲音。同理,你一般使用的麥克風這時候也不會接收聲音。因此,只有在要用Web Speech to Text從檔案識別文字時,再來設定Virtual Audio Cable即可。


線上語音轉文字 / Web Speech to Text

Web Speech to Text是以HTML5所撰寫的網頁,請使用Google瀏覽器開啟執行。程式碼內容已經保存到GitHub,供有興趣研究的朋友自行探索。

在前面設定好Virtual Audio Cable之後,我們就能使用Web Speech to Text了。

麥克風功能授權 / Microphone permission grant

剛開啟Web Speech to Text的時候,程式會提醒你需要開啟麥克風權限,這樣Web Speech API才能收到聲音。

這個動作只需要執行一次,第二次開啟就不會提示了。

檔案載入與設定 / File load and configuration

開啟網頁後,我們可以從左上角的「讀取本機檔案」跟「讀取網址」按鈕來開啟你需要的檔案,或是按「讀取展示影片」直接用預設的影片檔案做示範。

必須注意的是,Web Speech to Text可接受的檔案格式有所限制,只能使用網頁上可開啟的格式:

預設的影片檔案是聯經出版在YouTube發佈的「華語文能力測驗關鍵詞彙:牛刀小試篇」的片段。華語文能力測驗是為了外國人學習華語文測驗而錄製的影片片段,錄音品質佳而且發音標準。我擷取了其中對話的片段作為範例,讓我們來看看Web Speech to Text能夠識別到什麼程度。

檔案載入之後,我們還要選擇辨識語言。目前我只有設定「中文 (台灣)(cmn-Hant-TW)」、「普通话 (中国大陆)(cmn-Hans-CN)」和「英文(en-US)」。其他語系請參考的「Web Speech API Demonstration」列表。

開始辨識 / Recognition start

最後按下「開始辨識」按鈕,Web Speech to Text就會開始播放並同時進行語音辨識文字。讓我們來看看實際執行畫面:

Web Speech to Text不只識別文字,還會記錄每段話的開始時間和結尾時間,不僅方便製作字幕,也能夠讓人能根據錯誤識別文字的時間回頭去查看。

辨識期間請不要變更Virtual Audio Cable的聲音設定,也不要關閉網頁,放著讓它運作就好。影片或聲音檔案的播放時間有多長,它就需要同樣久的運作時間。你可以看完成時間來估計一下何時要再回來看看成果。

匯出 / Export

辨識完成後,我們可以選擇「輸出格式」,然後「下載」按鈕來儲存。

預設的輸出格式是SubRip字幕檔(.srt),這是一種泛用的字幕檔格式。你可以讓srt字幕檔搭配影片一起播放,或是在字幕檔編輯工具裡面去做進一步的編輯。當然,你也可以用Notepad++等純文字編輯軟體來開啟它。

開放文件試算表格式ods可以使用LibreOffice Calc開啟。裡面記錄開始時間、結束時間、以及辨識的文字,彙整成試算表的形式後就能方便整理做其他用途。

純文字txt格式可以用Notepad++等純文字編輯軟體來開啟,裡面依然記錄著開始時間、結束時間以及辨識的文字。

你也可以存成只有辨識文字的txt檔案,這時候只會有辨識的文字。方便你直接拿來做其他應用。

例如文字放到「文字探勘分析器」之中,就可以得到上面的文字雲圖。

最後我把辨識結果以srt格式輸出,結果如下:

1
00:00:01,589 --> 00:00:06,805
昨天晚上的約會怎麼樣介紹的對像不錯吧

2
00:00:06,805 --> 00:00:10,031
別忘了昨晚已經被問夠了

3
00:00:10,031 --> 00:00:15,009
他來的舅媽才見面就問了我一個問題

4
00:00:15,155 --> 00:00:24,685
工作薪水多少是家裡的老大嗎家裡有哪些人就像是警察問犯人一樣

5
00:00:24,826 --> 00:00:28,618
想閉上嘴什麼都不說

跟影片搭配起來的結果如下,一看就覺得這個字幕不太對:

儘管辨識結果雖然不算完美,但也的確幫我們辨識好了大部分的文字,時間偵測也算是正確。辨識完成輸出後,如果要追求完美的話,我們還需要手動修正字幕檔。


修正字幕檔 / Edit SRT subtitle

從Web Speech to Text辨識的資料並不完美,但因為Web Speech to Text並不具備字幕編輯的功能,所以最好是匯出srt字幕檔,再使用其他工具來編輯,例如純文字編輯器Notepad++,或是專門的字幕工具Subtitle Edit。

Subtitle Edit線上網頁版 / Subtitle Edit online BETA

Subtitle Edit online BETA提供了網頁版本的線上編輯工具,可以讓使用者能夠在網頁上載入srt字幕檔和讀取影片檔,就能直接比對和編輯字幕的時間和文字。它雖然提供了時間軸和合併字幕的功能,但是並沒有實作分割和微調時間的功能,我覺得只能說是基本但不能說是好用。

SubtitleEdit Windows版 / Subtitle Edit Windows Version

Subtitle Edit也有Windows的免安裝版本,但它的影片檔不支援MP4,只能支援AVI或MPEG,你可能要搭配轉檔到AVI格式的工具,例如Online AVI video converter。Windows版本Subtitle Edit具有分割功能,但分割之後的時間並不準確,而且一樣沒有微調時間功能,到頭來我還是手動編輯srt的時間。

這兩個免費工具我覺得都不太滿意,最後大部分還是手動修改。如果你知道有更好用的字幕編輯工具的話,歡迎在下面留言告訴我,感謝。

修正結果 / Edited Subtitle

修正之後的字幕看起來就比較合理了些,內容如下:

1
00:00:01,613 --> 00:00:04,000
昨天晚上的約會怎麼樣

2
00:00:04,000 --> 00:00:06,747
介紹的對像不錯吧

3
00:00:06,747 --> 00:00:09,355
別問了,昨晚已經被問夠了

4
00:00:09,355 --> 00:00:14,300
陪他來的舅媽才見面就問了我一堆問題

5
00:00:14,300 --> 00:00:17,000
在哪兒工作?薪水多少?

6
00:00:17,001 --> 00:00:20,359
是家裡的老大嗎?家裡有哪些人?

7
00:00:20,384 --> 00:00:23,512
就像是警察問犯人一樣

8
00:00:23,512 --> 00:00:28,618
我真想閉上嘴,什麼都不說

跟影片搭配的結果如下:


其他語音轉文字的方案 / Other Speech to Text solution

Web Speech to Text的操作很簡單,也沒有什麼特別的限制,問題就是辨識出來的準確度不完美。當然,就連真人,在很多時候也可能會聽錯話,要求機器達到完美是有點過於苛求了。

儘管如此,現代還是有很多語音轉文字的各種服務。早期有像是IBM的Waston Speech to Text (沒有中文就是了),或是中國的Arctime的語音識別功能,或是科技領導地位的Google也有推出語音轉文字的服務。

Google的語音轉文字 / Google Cloud Speech to Text

Google在語音轉文字上一直投入了不少心力。其實Web Speech to Text使用的Web Speech API,也是Google瀏覽器中的一個功能。不過,在Google投入深度學習領域後,語音辨識的技術又向前推進了一個世代,那就是Google Cloud Platform (又稱為GCP)中的Google語音轉文字。

Google語音轉文字提供了線上試用,你可以上傳1分鐘以內的聲音檔案,然後讓語音轉文字產生結果。我試用了一下,語音辨識非常完美。但如果語音檔案超過1分鐘,那你就必須透過比較複雜的手續,而且要將語音檔案放置到Google Cloud Platform的Google Cloud Storage上才能使用。雖然「Machine Learning(一):Cloud Speech API 介紹與實作」這篇有試用一下,但裡面太多Google雲端平台的細節要知道,門檻還是很高,我也就沒有深入研究了。


結語 / Conclusion

會想要製作Web Speech to Text是因為研究生常常需要打逐字稿,而這件事情非常花時間與精力。雖然大家嘴巴上都會說著「就播放錄音檔給Siri去做語音辨識吧」,或是使用Google DocEvernote內建的語音辨識軟體,或甚至是用「雅婷逐字稿」這類型的APP來做語音辨識,但實務上,這些做法都不太可行。

我在製作Web Speech to Text的時候,重點在於要能夠標記識別文字的時間。因為我本來就不會預期語音辨識能夠準確,但即使沒有全對,語音辨識還是能夠找出音近文字,以及這個音近文字的對應時間。

如果研究中使用了訪談資料,有些情況下我們不一定需要從頭到尾的全文逐字稿,而只是需要摘錄特定片段。Web Speech to Text能夠先幫你把訪談資料做一個草稿,即使不完全正確,因為研究者仍然會對訪談內容有些印象,這樣就能透過草稿來很快的找到重要的片段,然後再根據時間回放重要片段的錄音檔案。

但實際上,Web Speech to Text距離逐字稿錄音的實用程度還有很大一段差距。這是一來是因為我們訪談的錄音設備不夠專業,收錄的雜音過多,二來是訪談過程講話時往往文法不標準、語速停頓不流暢,跟範例檔照稿唸的標準發音差異甚大。因此最後辨識出來的文字非常少,而且至多只有功能詞,關鍵字大多都識別不出來。

我截取了一小段我口試時候的錄音,因為錄音裝置離我最近,所以我自己的聲音錄的還算清楚,不過我講話速度太快了,跟一般演講比起來差得太多。而Web Speech to Text辨識的結果非常糟,裡面很多雜音被辨識為「巧虎」、「彩虹」,大部分內容都辨識不出來,基本上是派不上用場的。

如果不能期待Web Speech API這種免費工具的效果,那我們不妨看看Googe語音轉文字能做到什麼程度。試用檔案辨識結果,找出了更多文字,但大概也只有找出我這段錄音檔的1成內容,而且一樣沒有包含關鍵字。既然Google雲端平台都只有如此了,那我想我們對普通錄音檔的語音辨識還是不要抱持著太大的期望好了。

說到頭來,那到底Web Speech to Text適合用在什麼地方呢?如果你的錄音是在講一些明確傳達資訊的對話,而且不要太多專有名詞的話,那辨識起來倒是還可以接受。我試了「【館長】金剛直播(20190114)」這個的影片,裡面是館長在講被傳喚到法庭的事情,辨識效果還可以接受,真讓我意外。

總之,Web Speech to Text的確不是一個萬能神器,但卻是一個有趣的小玩具。加入了播放YouTube功能之後,我就一直在嘗試各種影片,看看辨識的效果如何,一不小心又花了好多時間。大家就自行玩玩看,並在下面分享你的看法吧。


那麼這次對於Web Speech to Text的介紹就到這裡了。你會有需要從語音中辨識文字的需求嗎?什麼時候會想要用這個功能呢?你以前都是怎麼做的呢?你覺得Web Speech to Text能夠對你有什麼幫助嗎?歡迎在下面的留言處跟我們分享你的想法。如果你覺得我這篇教學寫的不錯的話,請幫我在AddThis分享工具按讚、將這篇分享到Facebook等社群媒體吧!感謝你的耐心閱讀,讓我們下一篇見。

總共116 則留言 ( 我要發問 , 隱藏留言 顯示留言 )

  1. 中英文轉錄逐字稿的能力到現在到底可以做多好呢?
    日前中國廠商科大訊飛發表語音轉寫逐字稿「訊飛聽見M1」,號稱辨識率高達95%,售價1299人民幣。
    https://unwire.hk/2018/10/23/voice-dictation-robot/life-tech/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+unwirelife+%28UNWIRE.HK+流動科技生活%29

    不過科大訊飛之前有誇大其詞的案例,他號稱現場英翻中並轉寫逐字稿,但實際上英翻中是人類即時同步口譯,機器只負責轉錄中文逐字稿。
    https://technews.tw/2018/09/25/iflytek-fake-ai/

    上網查了一下,關於「訊飛聽見M1」的消息並沒有很多,許多評測看起來也是事先寫好的業配廣告,沒有真的很多評測。

    究竟真實效果為何,仍然有待觀望。

    回覆刪除
  2. 您好,我目前在使用您寫的Web Speech to Text網頁,但是我想要增加日文語系的類別。
    我看到您說其他語系請參考的「Web Speech API Demonstration」列表。
    不過我參考了兩個網頁還有您在github上所放的原始檔,我只找到了在網頁上放置一個新的語系選擇方塊的位置。
    仍然無法識別日文語系的影片。
    如果可以的話希望您能夠增加日文語系,或是指教一下如何增加日文語系,謝謝您。

    回覆刪除
    回覆
    1. To 凜羿,

      我加入了「自選語言」的功能,並加入另一個比較完整的語言列表:
      https://www.science.co.il/language/Locale-codes.php

      日文的語言代碼就是ja
      我把日文、韓文都加入了下拉選單,其他語言可以填在「自選語言」就好。

      我以這個日文影片作為測試
      https://www.youtube.com/watch?v=P7qfM0Q2wkk

      看起來大致上都能辨識
      http://1.bp.blogspot.com/-pCCq2Jp-04o/XSL8ojZi03I/AAAAAAAEURs/vyPQs_pDyR4VG1HEf1DO1sIxFP4CcUxVACK4BGAYYCw/s1600/2019-07-08_161845.jpg

      那就這樣,有問題再說吧
      https://pulipulichen.github.io/HTML5-Speech-to-Text/

      刪除
    2. 好的,非常感謝您花時間修改,謝謝。

      刪除
    3. 請問?可否同樣加入粵語?因爲我已嘗試很多次,自選語言 zh-hk,都不能使用。如果可以廣東話轉繁體。實在太好了!拜託拜託!!!

      刪除
    4. 對,如果有就很棒.另外有一個叫:Py Transcriber的免費軟件,可以識別粵語,只是沒有網頁版,只有安裝和免安裝版.

      刪除
    5. Py Transcriber 反而在識別普通話上比較差, 粵語比較準確 ; 而Web Speech to Text 卻識別普通話比較準確, 哈~

      刪除
    6. 奧語可以試試看語系設為zh-yue?

      Py Transcriber
      不知道為什麼我後來使用的時候沒有時間軸的資訊
      奇怪

      刪除
  3. 近日網友回報Web Speech to Text工具的問題

    1. 可能不能處理過長的影片,網頁會因為記憶體不足而當機
    2. 但是三小時內的影片、產生約70KB的srt字幕檔,是可以成功的

    為了長時間轉錄需求,未來Web Speech to Text可能需要以下功能
    1. 中間轉錄功能:指定轉錄開始到結束的時間
    2. 保存轉錄進度的功能:每隔10秒鐘,儲存現在轉錄的進度。下次開啟同一份檔案的時候,要詢問是否載入上次轉錄的進度。
    3. 保存轉錄文字的功能:每隔10秒鐘,儲存已經轉錄的文字。下次開啟Web Speech to Text時,預先載入上次已經轉錄的文字。
    4. 自動連續保存轉錄文字的功能:設為可選選項,預設關閉。開啟的話,每隔10分鐘就會自動開始下載檔案。開啟的時候,要先確認使用者是否開啟多重檔案下載的權限、以及關閉詢問儲存檔案功能的位置的Chrome設定。

    有時間再來處理吧。

    回覆刪除
  4. 十分感謝您開發的這程式,實際試用結果,你開發的這款比google文件的語音辨識、speechnotes等都還要好用。

    回覆刪除
    回覆
    1. 你好,

      能幫上你的忙,我很開心!

      不過其實這隻程式用的核心工具語音辨識API webkitWebSpeechRecognition,跟Google文件內建的語音辨識是一樣的工具。
      不過我加上了媒體播放時間跟辨識文字之間的對應,也就是你們看到的「字幕」(時間+文字),這樣子我覺得比較好用啦。

      刪除
  5. 請問?可否同樣加入粵語?因爲我已嘗試很多次,自選語言 zh-hk,都不能使用。如果可以廣東話轉繁體。實在太好了!拜託拜託!!!

    回覆刪除
  6. 現在都無法撥放youtube影片 請問要怎麼處理

    回覆刪除
    回覆
    1. 你好,

      我剛剛試著操作看看,是可以載入YouTube的
      https://pulipulichen.github.io/HTML5-Speech-to-Text/

      操作的時候要注意,不能直接按YouTube上面的播放按鈕
      請按「開始辨識」按鈕

      操作示意圖:
      http://2.bp.blogspot.com/-1_CDnfq3a9g/XVZxWrZD_EI/AAAAAAAEWvg/M4sABuCrcOgz3_h4YZ_hgccQR8TSrKemgCK4BGAYYCw/s1600/PicPick%2B20190816-165956-1.png

      刪除
  7. 非常感謝, 也非常實用, 對於整個的過程與原理, 有了概念, 至少知道我在做什麼步驟, 為什麼這麼做, 以及會得到什麼結果. 真的非常佩服你的才華.

    回覆刪除
    回覆
    1. To 賴銘松的國標舞世界,

      感謝你的稱讚,有幫上忙真是太好了。

      刪除
  8. 你好啊 ! 你的軟件實在太神了,謝謝你! 但我的chrome在播放影片時,每一次說話停頓後都要我再次允許麥克風,想請問有方法可改變嗎?謝謝你

    回覆刪除
    回覆
    1. To 恐懼鳥。

      請在Google Chrome裡面修改設定
      https://support.google.com/chrome/answer/2693767

      1. 開啟 Chrome Chrome。
      2. 依序按一下右上方的「更多」圖示 更多 接下來 [設定]。
      3. 按一下底部的 [進階]。
      4. 在「隱私權和安全性」底下,按一下 [網站設定]。
      5. 按一下 [麥克風]。關閉 [存取前詢問我] 設定。

      試試看吧。

      刪除
  9. 我發現我要同時在另一個分頁撥放YouTube影片和同時按下開始辨識才會辨識耶,很有趣

    回覆刪除
    回覆
    1. To AffordableEvaluator,

      呃...它是收電腦放出來的聲音
      正常來說應該是要在同一個分頁播放YouTube影片,同時收音並識別才對。

      比較有可能是你的YouTube一開始設為靜音
      所以開始識別並播放YouTube的時候,不會播放任何聲音

      現在的解決方法是,先在其他分頁開YouTube,確認聲音有播出
      再到線上檔案語音轉文字字幕開啟YouTube,開始識別
      這樣應該就可以了

      刪除
    2. 現在已經修改成影片播放時強制取消靜音、播放聲音了

      刪除
  10. 感謝 版主超厲害的程式.請教如何的得到較長時間的文稿?目前我轉檔的文稿只有4分鐘(.odt 又比 TXT 少 4 秒鐘),整個影片是54 分鐘.

    回覆刪除
    回覆
    1. To yehmy,

      應該直接播放影片慢慢轉錄就可以了吧?

      除非電腦記憶體用完,導致網頁當掉
      不然應該就只是普通的慢慢轉錄而已

      不行嗎?

      刪除
    2. 有的影片可以得到9分鐘的文稿.會不會是因為廣告片插播而轉檔中斷,使得54分鐘的影片只有4分鐘文稿?

      刪除
    3. To yehmy,

      理論上有聲音的話,他應該就只是普通的繼續轉錄。
      我還沒實際試過9分鐘以上的影片。
      如果你有沒辦法順利轉錄完成的影片網址的話,可以在這裡貼出來,好讓我檢查看看嗎?

      我有時間的時候會再來確認看看。

      刪除
    4. To yehmy,

      我找了一部14分鐘的影片來轉錄看看,就結論來說,是可以正常運作,不會中斷。
      https://youtu.be/Lyz5v1vZolY

      轉錄畫面
      http://2.bp.blogspot.com/-wZbKuCABHKk/Xc6dt_wKupI/AAAAAAAEbCg/gBDljh9iQJweCmtkw6ofONhku9cOYJGDQCK4BGAYYCw/s1600/anime%2B8%25E7%25A7%2592%25E7%259A%2584%25E4%25BA%258B%25E6%2583%2585.gif

      轉錄完成的畫面
      http://1.bp.blogspot.com/-bvyx7bA3Ikc/Xc6dvUZXZqI/AAAAAAAEbCo/k6yy1UwuywMYfA-kI2Qr5ixoASHJ-HHXwCK4BGAYYCw/s1600/2019-11-15_204106.png
      (本來想要錄影的,結果跑到最後太吃記憶體了,畫面還沒正常運作,它就跑完了)

      最後轉錄結果轉出的SRT檔案如下,效果就...你知道的,不能強求XD
      https://github.com/pulipulichen/blog-pulipuli-info-data-2019/blob/master/11/%E6%9C%89...%E6%9C%89%E6%8B%BF%E8%97%A5%E5%95%A6%EF%BC%8C%E4%BD%86%E6%B2%92%E4%B8%8D%E8%88%92%E6%9C%8D%E5%B0%B1.srt

      刪除
  11. 修正了一個小問題:

    開始播放YouTube影片時會強制放大音量和取消靜音,以確保轉錄可以正常運作。

    回覆刪除
  12. 謝謝布丁大師 ! 記憶體 3 G, 轉檔中 只用了 1.6G ,可能沒問題.
    請 試 看看 https://www.youtube.com/watch?v=I3-ToLpt4jA

    回覆刪除
    回覆
    1. To yehmy,

      今天實際上花了快1個小時轉錄看看。

      http://1.bp.blogspot.com/-_6Bw8tJnQBA/Xd57prj2iwI/AAAAAAAEbec/Q9LNFr21dm8JaoM7m5Ij3f9hck1iMLUbACK4BGAYYCw/s1600/2019-11-27_213411.png
      看起來是沒有問題的。

      刪除
  13. 調整過了功能,讓長時間轉錄也不會消耗太多記憶體
    https://www.youtube.com/watch?v=cUh978LguQk
    1:37:33 長時間演講,轉錄成功
    轉錄時不太會有當當的感覺了

    回覆刪除
  14. Hello,
    非常感謝版主的分享,這東西真的神了,幫助我影片配上字幕,非常非常有用。

    回覆刪除
    回覆
    1. To Neo Kung,

      感謝您抽空留言
      能幫上忙真是太好了呢!

      刪除
  15. 聽說比較新的專案是這個:「pyTranscriber 」
    檔案下載:https://github.com/raryelcostasouza/pyTranscriber/releases/tag/v1.3-stable
    電腦玩物介紹:https://www.playpcesor.com/2020/01/pytranscriber-auto-subtitles.html

    剛剛試用了一下,還蠻簡單的,ok啦。
    識別度不算完美,但堪用。不過不知道為什麼現在這個版本沒有加上時間了。

    回覆刪除
  16. 你好
    請問是否有其他mac使用的虛擬音源線軟體?
    Web Speech to Text上面的連結點進去後無法下載mac的版本。
    謝謝版主製作的軟體。

    回覆刪除
    回覆
    1. To Ann,

      我不是Mac使用者,這部分愛莫能助
      可能要請你自行找找看了

      刪除
    2. 比較簡單的做法,應該是從硬體的角度著手
      你把耳機輸出的音源,直接轉換為麥克風的輸入,這樣就可以了

      https://m.mobile01.com/topicdetail.php?f=500&t=1770324
      雖然實際上我沒試過,但這邊的討論似乎是在說只要用3.5mm音源線連接耳機跟麥克風,你就能錄到電腦放出來的聲音

      刪除
    3. 謝謝版主的回覆,
      我再研究看看,
      希望之後能夠使用,
      謝謝。

      刪除
    4. To Ann,

      我試了一下,把3.5mm音源線(兩環)公對公的線插在耳機和麥克風的孔,的確就能直接開始轉錄
      https://3.bp.blogspot.com/-fDu49hpNQKQ/XoBk2IiUrcI/AAAAAAAEidQ/QpKEWnflyv88t6LZpOBkvOqhOSgGKuozACK4BGAYYCw/s320/IMAG0978.jpg

      隨意查了一下,這線材價格39元,在燦坤之類的地方應該也可以買到,或是你喇叭的連接線可能就直接是這種了
      https://shopee.tw/%E5%85%AC%E5%B0%8D%E5%85%AC-3-5mm-AUX%E9%9F%B3%E6%BA%90%E7%B7%9A--%E9%9B%99%E9%A0%AD%E9%80%A3%E6%8E%A5%E7%B7%9A-1-5%E7%B1%B3%E9%9F%B3%E6%BA%90%E7%B7%9A-%E9%9B%BB%E8%85%A6%E5%96%87%E5%8F%AD%E7%B7%9A-i.8908342.1636373539?gclid=Cj0KCQjwjoH0BRD6ARIsAEWO9DsGExzwlEIV9PUf6PiJAj7_6l-oATBd2c8AA8h-T6vYE-1beYWtGJkaAi0EEALw_wcB

      如果你的Mac只有耳機孔,那可能要搭配個USB音效卡來用,音效卡上就會有耳機跟麥克風孔
      https://www.myfone.com.tw/buy/prod/P0000203070731?gclid=Cj0KCQjwjoH0BRD6ARIsAEWO9Dvh-6Q6mcTqyOuR8oY11QH1Qkv4lMHqahOHwiezNSoP4xV2NvLUloIaAmcxEALw_wcB
      隨意查了一下,大概價格在399元左右

      供你參考!

      刪除
  17. Hi 謝謝版主,版主做的軟體對做筆記幫了大忙呢。很感謝。

    回覆刪除
    回覆
    1. To AWen,

      不客氣,也謝謝您願意留言給我鼓勵!

      刪除
  18. 版主好 為什麼在錄的時候影片都會突然停頓幾秒 然後就會只錄到一半的句子或者直接都整句沒錄到

    回覆刪除
    回覆
    1. To TIM,

      這是因為怕長時間轉錄的過程中,瀏覽器佔用太多記憶體,可能導致當機,所以我設定每3分鐘就停3秒。
      不過之前我同時也改善了UI呈現的樣貌,似乎這樣就可以避免當機的問題。

      現在我把這個暫停改成每30分鐘一次。
      希望這樣能在可用性和避免當機之間取得一個平衡。

      刪除
    2. 謝謝回覆 但我今天只是錄一個大概5分鐘的影片 情況是平均30秒就停頓一次 是我的筆電太差嗎XD

      那我晚上再試試看好了 謝謝

      刪除
    3. To TIM,

      觀察一下你電腦的CPU跟記憶體使用量
      有可能是太吃效能快不行了

      刪除
  19. 請問非youtobe影片檔,也可以語音轉文字嗎???
    我是想將教學影片轉成文字檔

    回覆刪除
    回覆
    1. To ALLENWANG

      影片格式只接受MP4 (因為這個能在HTML裡面開啟),而且必須是以VP8、VP9、H.264編碼。你可以使用ONLINE-CONVERT.com的Convert video to MP4來將任意影片轉換為MP4格式。
      https://video.online-convert.com/convert-to-mp4

      內文有寫

      刪除
  20. 作者已經移除這則留言。

    回覆刪除
  21. 謝謝你的努力,讓要上字幕的人,輕鬆很多,非常感恩,加油~!

    回覆刪除
  22. 雖然還不完美 但節省了至少80%的時間 萬分感謝!!

    回覆刪除
  23. 請問影片丟上去翻字幕會暫存在哪嗎?

    回覆刪除
    回覆
    1. To Fish,

      只會保留在瀏覽器的記憶體裡面,不會上傳到任何伺服器
      所以關掉網頁就沒有了喔

      刪除
  24. https://github.com/raryelcostasouza/pyTranscriber
    這個直接調用google

    回覆刪除
  25. 不好意思請問這個是否可以支持一個小時以上的語音呢?
    是翻譯完之後才會有結果
    還是即時的翻出來呢?

    目前我這邊使用了一個小時以上的語音檔
    語音應該已經有說話了
    不過還尚未看到文字呢

    因此喜請問大大
    不過真的非常感謝發明這個軟體

    回覆刪除
    回覆
    1. 你好,

      通常開始運作的時候,聽到有人講話的聲音,系統就會即時轉錄了
      如果你一直都沒有出來,那表示你的設定有錯誤

      通常是因為你的喇叭沒有接給麥克風
      你本人聽到了聲音,但是系統沒聽到聲音
      所以失敗了

      請檢查硬體環境,確保你的電腦有接收到來自喇叭的聲音
      再開始正式轉錄

      刪除
  26. Hi 想問辦識語言可否改為粵語廣東話呢? 如果可以, 步驟是如何呢?

    十分感謝

    回覆刪除
    回覆
    1. To Ocean,

      「自選語言」設定為「zh-yue」試試看?
      https://lh3.googleusercontent.com/-AqhEbv_9iwU/YETD3gl4GsI/AAAAAAAE6-A/rcONLJzxeOoZMhw2EA6YfsmgQBiaUbbPQCLcBGAsYHQ/2021-03-07_201516.png

      我不懂粵語,也不確定這個轉錄是否正確
      測試影片是 https://www.youtube.com/watch?v=Q8JwKRCsXKs
      第一個轉錄的句子是「條女好索呀」

      刪除
  27. 謝謝! 這是一個很實用的線上服務.
    請問, 在語音辨識過程中, 可否暫停或停止, 以下載檔案

    回覆刪除
    回覆
    1. To Nick,

      目前沒有這個規劃

      如果你只想要辨識部分段落,你可以先把影片或聲音檔剪輯到你要的段落,再以此識別
      讀取本機檔案的功能也支援mp3、ogg等聲音檔

      做起來會像是這樣子:
      https://lh3.googleusercontent.com/-aoN3UU0HrzA/YG6wVLVsx7I/AAAAAAAE8Ow/B7vi4_MjJMUvk_VbVq1pqcaRmdhXcJ36ACLcBGAsYHQ/s1600/2021-04-08_152630.png

      刪除
    2. 我覺得有暫停或提前結束會滿實用的,有的時候一邊重聽一邊轉文字,結果中間突然想上廁所...

      刪除
    3. 嗯… 這個工具不接受中間修改。
      所以最好的做法是,你設定好之後,根據預估的完成時間,在手機設個鬧鐘,然後直接去上廁所,電腦就放著讓他自己跑。

      刪除
  28. 我已成功將幾個較長的錄影檔案辨識成文字,謝謝提供如此有效的工具,但是目前把一個檔案上載後進行大概1/3,還沒看見文字開始出現,就停住了 (畫面中間有圓圈和箭頭顯示好像在試著繼續,但長時間沒反應),我想取消這個檔案的辨識,但沒地方可以點擊取消,所以我退出網站,然後再此進入,想重新開始,但是那個錄影還在上面,也沒進展,請問如何取消這個檔案辨識?

    回覆刪除
    回覆
    1. ​To Lou Yang​,

      你是用什麼方式開啓錄影檔案呢?

      1. 讀取網址:重新讀取網址即可
      2. 讀取本機檔案:重新整理網頁,再次載入本機檔案即可

      目前語音辨識一旦開始了就沒有取消或暫停功能喔
      要取消的話,直接重新整理網頁即可

      刪除
  29. 之前兩者都作過,沒問題,這次出問題的是讀取網址。

    沒辦法整理網頁,因為沒有可以點擊輸入網址的地方,網頁上就只有“讀取中”一個選項,然後那個錄影就一直在顯示圓圈和箭頭好像在繼續,但長時間沒都沒反應。

    回覆刪除
    回覆
    1. To Lou Yang,

      不能按Ctrl + R重新整理網頁嗎?
      或是關掉網頁,再重新打開也可以。

      刪除
    2. 我也遇到網址輸入關掉後一樣的問題,後來我發現按Ctrl+r不放的時候可以重選網址

      刪除
  30. 請問未來有可能支援放在 OneDrive 的MP3/MP4嗎?

    回覆刪除
    回覆
    1. 純client端的工具應該不太可能直接取用OneDrive雲端硬碟的檔案。
      不過你可以換個思維,把OneDrive的檔案掛載到你的電腦上,把它當作你本機電腦來操作。

      https://www.linuxuprising.com/2018/07/how-to-mount-onedrive-in-linux-using.html
      在Linux裡,你可以用Rclone

      我的電腦是Linux,其他作業系統你可能需要自己研究囉。

      刪除
  31. 多謝作者, 很棒的軟體! 因為是呼叫Web Speech API, 所以, 除了可以在Chrome使用之外, 也可以直接在微軟的Edge瀏覽器執行 (這樣做, 在中文語音辨識上, 往往可以得到更好的準確率---因為Edge 的Web Speech API 是連到微軟自己的雲端語音辨識引擎).

    回覆刪除
    回覆
    1. To 孫阿州,

      我記得Web Speech API的設計是離線使用的,也是一個瀏覽器的標準。
      稍微搜尋一下,並沒有看到edge的Web Speech API有這方面的設定。

      有參考資料嗎?

      刪除
  32. 想請問作者是否可以變更辨識引擎

    回覆刪除
    回覆
    1. To ㄚㄚ,

      這個功能仰賴瀏覽器的Web Speech API。不過目前並沒有看到可以更換Web Speech API引擎的方法。直接更換瀏覽器可能更簡單一點。

      如果想要自行建立模型,你應該選擇其他方案。

      刪除
    2. 了解感謝作者回覆,還有一個問題想請問作者,目前測試的結果每句開頭的部分都會有一點落掉,想問作者是否知道原因出在哪><,會跟adjustStartSecond = -0.5 ,adjustEndSecond = 0.5有關嗎?

      刪除
    3. 可能是。
      不妨Fork後自己改改看?

      刪除
    4. 作者已經移除這則留言。

      刪除
  33. 有修改了,只是好像沒什麼作用,可否詢問作者這兩個變數的應用是如何呢><

    回覆刪除
    回覆
    1. 記得是把字幕的時間去做提前跟延後吧。
      看程式碼就可以知道了。
      跟語音識別本身沒有關係喔。

      刪除
    2. 了解,謝謝作者回覆,所以開頭漏掉跟那幾個時間無關嗎

      刪除
    3. To ㄚㄚ,

      我想應該關係不大。

      刪除
  34. 想問作者,為何最後一句產出的時候倒數第二句會被清除

    回覆刪除
    回覆
    1. 您好,

      請告知使用的YouTube影片、你用的瀏覽器與版本,以及作業系統與版本。

      刪除
    2. 作者您好,我使用的功能是本機檔案選取影片檔來執行轉換。

      刪除
    3. 您好,

      能夠找一個YouTube影片是也發生了你遇到的問題的狀況嗎?

      刪除
    4. 不好意思,目前用Youtube影片測試功能是正常的,但是本機檔案還是有此狀況ˋ

      刪除
    5. https://www.youtube.com/watch?v=-43Sze2BVn8

      作者您好,今天用這個影片測試有相同問題

      刪除
    6. 作者已經移除這則留言。

      刪除
    7. https://i.imgur.com/P9mQarE.png

      https://i.imgur.com/P9mQarE.png

      此為測試時截的圖,還請作者解答,謝謝作者

      刪除
    8. 您好,

      感謝您的回報。
      不過我近期比較忙碌,可能八月才能有時間來處理,請您見諒。

      刪除

    9. 好的再麻煩作者了~

      刪除
  35. 您好,在未安裝 "Virtual Audio Cable" 狀況下, 按下[開始辨識]。發現異常, 趕緊安裝 "Virtual Audio Cable", 再嘗試時就一直出現 "讀取中" 訊息, 沒法中斷或放棄它。不知如何是好?

    回覆刪除
    回覆
    1. 您好,

      1. 重新讀取網頁看看。
      2. 重新設定權限看看。
      https://support.google.com/chrome/answer/114662?hl=zh-Hant&co=GENIE.Platform%3DDesktop

      刪除
    2. 正常畫面一閃而過, 隨即進入 ""讀取中"" 畫面。"網站設定" 重新設定權限仍無效 !

      刪除
  36. 回覆
    1. 問題似乎解決了。本文的鏈結的確有相同問題, 但若是進入 https://github.com/pulipulichen/HTML5-Speech-to-Text 下的 online demo 似乎就會正常了。雖然文字會辨識錯誤, 但至少運作正常。感謝您的協助 !

      刪除
    2. 咦?兩個不是一樣的連結嗎?
      可以幫我貼一下你用那個連結的開的嗎?

      刪除
  37. 請問聲音檔我試過沒辦法辯識, 已轉成OGG檔

    回覆刪除
    回覆
    1. 您好,

      請使用瀏覽器可以直接播放的聲音格式。

      要如何確認瀏覽器是否能夠播放,可以看下面這張表:
      https://developer.mozilla.org/en-US/docs/Web/Guide/Audio_and_video_delivery/Cross-browser_audio_basics#audio_codec_support
      每個瀏覽器可以支援的程度都不太一樣,請依照需求把聲音檔案轉換成其他格式。

      刪除
  38. 謝謝你的網頁,太棒了,幫助我工作效率大大提升。

    回覆刪除
  39. 限制時間?28秒!!??

    回覆刪除
  40. 您好,請問"讀取網址"的部分只能使用youtube的影片網址嗎?
    我想要轉換出IG和小紅書影片裡的文字
    謝謝~~

    回覆刪除
    回覆
    1. 您好,

      這篇的做法主要是為了取得影片的時間戳記,所以需要明確知道現在影片播放的狀況。
      如果你只是需要將影片的聲音轉換成文字,應找尋其他更合適的方案。
      很多方案都能做到即時轉錄的功能。

      刪除
    2. 您好,感謝您的回覆~
      但因為即時轉錄都需要將影片先下載下來,或者需要兩台裝置(一台播放一台轉錄),不知道有沒有裝置是可以直接貼上網址之後便可以轉錄出來的呢?

      刪除
  41. 大大你的Virtual Audio Cable: Windows 的超連結好像改到了

    回覆刪除