最近 Google 文件中可以加入自帶注音的字型了,只要按一下字型選單旁的「小三角形」▼ ,再點選「更多字型」,就能新增名稱為 Bpmf Huninn / Bpmf Iansui / Bpmf Zihi Kai Std 的注音字型。
▋ 注音字型⇦⇨國字+注音
突然有個想法,這些注音字型必須使用支援 IVS 技術的輸入法來調整多音字的注音,再將文字貼到文書處理軟體(例如:Google文件)中指定使用注音字型;如果反向處理,將 Google 文件有加注音的文字貼到無法顯示注音字型的網頁或遊戲中,注音就看不到了;寫個能將「注音字型」文字和「國字+注音」格式間的轉換小工具,應該滿有意思的。這樣子可以將別人在文件中以注音字型顯示的文字,轉成遊戲用的「國字+注音」,或是倒過來處理,將以前國字加注音的內容,直接轉為「注音字型」的文字格式,貼到文件中。
農曆年前心血來潮,接上舊硬碟,挖出了以前放在電腦教室讓學生玩的 CAI。民國85年剛接電腦教室時,資源有限,找了「臺灣省國民學校教師研習會」設計的一些電腦輔助軟體,有多餘的時間會讓學生玩一下。這些「上古時期」的 CAI,相對於現在的軟體,看似陽春,但有不同的樂趣。讓家裡沒經歷過 DOS 時期的小孩玩了一下,他們覺得還滿好玩的呢!
個人的經驗,花瓣字一開始玩,造詞會比組字容易很多,組字明明有的字很常在用的,一時之間反而想不出來。當然,花瓣字當初的設計初衷就是希望能好玩、多寫,所以滿建議用 open book 的概念,可以邊查,邊動腦。部件怎麼查呢?全字庫 (https://www.cns11643.gov.tw/) 是一個很好用的資源,它的「字碼查詢」選單中的「IDS查詢」和「部件查詢」,都可以用部件來找字。
Google 輸入工具的手寫輸入,中文的辨識率滿高的,當然也包括注音符號。但是如果將多個注音符號寫在一起,例如「ㄒㄩㄥˊ」,那大概就會失望了;直寫會被辨識為國字,橫寫可能變別的文字。一次一個注音符號可以正確辨識,多個就亂掉。山不轉路轉,路不轉人轉,轉個念,就可以讓 Google 輸入工具應用在手寫注音辨識了!
前兩天發現 HTML5 FUN Audio Player 怎麼樣都抓不到 YouTube 字幕;查了一下,看來多變的 YouTube 又出招了,讓原本由影片頁面原始碼中擷取到的字幕網址失效了,只能抓到空白的內容。研究了大半天,找到了另一個方法 (有興趣可以參考 jdepoix 的 youtube-transcript-api ),主要就是先由影片的頁面原始碼中找到「INNERTUBE_API_KEY」,然後再利用 YouTube 的 API ,以 POST 的方式取得影片資訊,如果成功,就能拿到影片字幕軌資料的網址。
以 JavaScript 使用新方法來擷取影片資訊的第一關會是在 POST 時的 CORS 問題,如果透過 CORS proxy 當然是可行的方法,一般來說,利用 Google Apps Script 也能寫出 CORS proxy,不過 YouTube 的 API 有在擋 bot,Google Apps Script 直接就被封殺了,網路上其它 CORS proxy 服務也沒好到哪裡去,多玩個幾次,就只能得到這樣的訊息了:
status: 'LOGIN_REQUIRED', reason: 'Sign in to confirm you’re not a bot'
想要的資料當然就撈不到了。
後來發現,原來在瀏覽器中用 fetch ,不透過 CORS proxy 來 POST ,就能使用 YouTube API 了,倒是有個小地方要注意,不然就會一直出現:
Access to fetch at 'https://.......' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
裡面最重要的關鍵字是「preflight」,當 Content-Type 是 application/json 時,瀏覽器在未傳送資料給遠端前,會先自我審查是否違反 CORS,難怪我一直看不到 YouTube API 的回應。要怎麼改呢?