語言教育新創的工程團隊會遇到什麼技術問題?
常常被很多人問到 Glossika 的產品是用些什麼工具打造出來的?團隊之間又是怎麼協作的?對此,我們將目前所使用的工具和一些語言處理上遇到的問題寫成一篇文章來跟大家分享!
Glossika 產品是要解決什麼問題?
在開始之前,我們先來簡單說一下 Glossika 到底要解決什麼問題?現在市面上語言學習平台那麼多、資源那麼好找,我們為什麼還要開發 Glossika 語言學習平台?
簡單來說,我們希望用技術打造一個有效率的語言學習工具,這個學習工具可以讓世界各地的人,無論他的母語是什麼、想學的語言是什麼、程度高低等,都能在 Glossika 語言學習平台上有效率地讓自己能開口說流利的外語、提升外語能力。
我們將語言學習內容用演算法從簡單到困難去排序,學習者上來使用 Glossika 時,我們會用演算法判斷他的程度,進而給他精準的學習內容,降低「random practice 無效學習」所浪費的金錢和時間。
Glossika 的工程團隊
在 Glossika 內部,工程團隊分為前端與後端,前端就是所有的產品和網站介面,設計師透過 Adobe XD 這套 UI/UX 設計工具實作出網站頁面,後端則就是主要和語言學團隊合作,負責演算法、API、資料庫等。
在開發時,我們會依據特定場景來選擇不同的前端框架,主要使用了 React、Vue 以及 Laravel Blade 進行開發。例如在製作 landing page 時我們需要 SSR,這時候用 Laravel Blade 進行頁面的設計就十分合適,也利於 SEO。在產品介面,由於需要提供使用者豐富的交互互動功能,及不同語言之間的設定與切換,因此選用 React 來進行 SPA 的製作,來增進使用者體驗。
在後端方面,我們用 PHP Laravel 作為後端框架,並配合 Python 做語言方面的處理,資料庫方面使用 MySQL,並將這些應用程式都部署在 AWS 上,並用了許多服務,像是 EC2、S3、RDS 等等,以利於團隊快速開發功能。
Glossika 如何處理語言內容
在 Glossika 內有許多處理語言值得關注的地方,以平台本身提供給使用者的服務來說,不外乎就是語言的文字以及音檔這些內容。
在整個流程的起點,我們需要經過內部 Product Team 去取得各種外語的文字跟錄音檔,接著我們在後製的過程中會經過程式對文字的語義以及結構做適當的排序及處理。特別補充是目前很多的語言學習工具用的是 Text-to-Speech 技術,但我們仍使用真人錄音,雖然較花費時間和資源,但真人錄音的感覺和流暢感,是目前各種 Text-to-Speech 技術做不到的。
困難一:文字讀的方向不同
我們都很習慣從左到右讀文字,不管是中文還是英文,都是從左到右,但是 Glossika 目前有多達 65 種語言,有些語言是從右到左讀過去的,因此在處理上就是我們要費心思的地方,在處理時都需要特別寫些條件去判斷。舉個例子給大家看,以下的三個中東語言分別是標準阿拉伯文、波斯文和庫德與,他們是由右到左讀過去,句號在左手邊圈起來的位置。
困難二:性別問題
很多語言會有男女性別的問題(甚至還有中性),像很多歐洲語言都有男女性別的差異,這種我們在處理語言內容是都需要特別花心思去處理。也因為我們未來打算分別提供男生和女生的學習內容版本,因此我們在分類上都需要一而再、再而三的去和語言學團隊討論和確認處理的方式。
困難三:語言文字顯示問題
我們做了不少「方言」內容,常常方言的文字顯示問題都是我們會需要花時間處理解決的,曾經遇到的問題有像是文字字型不支援,或者在瀏覽器中因為缺乏了特定字體而無法完整顯示,都必須去用不同的環境測試才知道。
為世界各地的用戶提供服務
我們產品的使用者遍及世界各地,在處理客服時也相對的較為複雜。我們使用 Intercom 這個客戶服務系統,因此當客戶用系統發生問題時,我們能夠比較清楚去定位出這個使用者所在的區域、用哪個裝置及瀏覽器版本,並快速模擬出環境以及問題。比較常遇到是特定瀏覽器才會出現的狀況,像是在 Safari 的某一個版本才會出現,那我們就必須去開 Xcode 的模擬器來除錯。我們的後台也會有一些系統記錄來協助我們追蹤問題,像是退訂紀錄或者是學習語言資訊等。
另外也因為在資料庫內的語言數量越來越多,在資料表檢索時也需要去考慮效能問題,避免影響使用者的體驗。之前就有發生過資料表被 lock 的情況,導致少數使用者在做語言訓練時資料載不進來,後來在進行 sql 語法撰寫時都會特別謹慎。也有就是上傳了更新後的音檔後忘記去 Cloudfront 那清除 cache,被反應音檔還是沒有更新等狀況。在工程團隊裡,其實滿多問題都是透過制定規範與流程來解決,會比較沒有人為的錯誤。
以上就是 Glossika 的工程團隊簡介囉,希望能讓你們有更多對 Glossika 團隊的認識!如果你有任何相關的問題,也歡迎和我們聯繫 (hr@glossika.com)!