The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

理解 WAV 格式:從 PCM 編碼格式到檔案大小計算方法

最近正在設計一個「即時口譯」的應用,可以幫助我們客戶在舉辦現場活動或即時線上活動時,可以提供多語言的口譯服務。我們需要將語音輸入訊號轉換為文字,然後再轉換為其他語言的語音。在這個過程中,首先要先深入瞭解常見的 WAV 格式,瞭解之後才能做一些更深層的細部操作。這篇文章將深入探討 WAV 格式,從 PCM 編碼格式到檔案大小計算方法,讓我們更好地處理音頻資料。

... 繼續閱讀 ...

使用 Google Chirp 通用語音模型進行高品質語音識別與文字轉錄

最近研究了多套語音轉文字的模型,今天這篇文章我打算來分享一套由 Google 發展的 Chirp 通用語音模型 (Google USM),該模型能夠在單一模型中統一處理多種語言的數據,且主要用來處理短音頻(小於1分鐘)和長音頻(1分鐘至8小時)的應用情境。

... 繼續閱讀 ...

如何讓 Python 程式正確的處理 UTF-8 字元編碼

最近在嘗試微軟最近推出的 MarkItDown 工具,它使用 Python 開發,可用於將各種文件檔案轉換為 Markdown 格式,支援的文件格式也非常多,這在 AI 盛行的時代是非常有用的。因為文件換為 Markdown 格式之後,可以讓大語言模型進行分析。不過我在 PowerShell 底下使用的時候,沒有意外的又出意外了,因為它無法正確的處理 UTF-8 字元的輸入輸出,所以只要遇到中文就掛掉,真的很煩,這種問題都不知道處理幾次了。這篇文章我打算來介紹如何讓 Python 程式正確的處理 UTF-8 字元。

... 繼續閱讀 ...

GitHub Copilot 錦囊妙計:定義 Git 提交訊息產生的自訂指令

在 VS Code 的「原始碼控制」窗格中,不僅僅可以用來做 Git 版控,你還能利用 GitHub Copilot 來產生即將 Commit 的程式碼變更的提交訊息,透過 AI 幫你自動撰寫 Git 的 Log 內容。事實上,在新版的 GitHub Copilot 中,你可以透過定義「自訂指令」(Custom instructions) 來「提示」GitHub Copilot 要如何產生 Log 訊息內容,你可以自己定義擁有團隊共識或大家希望的 Commit Log 風格,例如可以套用 Conventional Commits 風格等等。這篇文章我就來說說怎麼做!👍

... 繼續閱讀 ...

聰明的使用 ChatGPT 搜尋功能幫助你解決每日大小事

我們都知道 ChatGPT 在問答的過程中,不時會有「幻覺」的問題,也就是當 ChatGPT 在回答問題的時候,經常表現的自己很懂,但又常常被發現他其實是在胡說八道的狀況。最近 ChatGPT 正式推出了「搜尋」功能,我們終於可以讓 ChatGPT 基於「搜尋結果」來回答問題,如此一來不但可以避免 ChatGPT 的幻覺問題,也可以讓 ChatGPT 回答的更加準確。今天這篇文章,我打算來分享幾個使用 ChatGPT Search 的應用技巧,這也是我在 ChatGPT 錦囊妙計:掌握九大應用場景的創意用法 課程中跟學員分享的其中一個技巧。

... 繼續閱讀 ...

如何利用 Google AI Studio 整理 Whisper 生成的字幕與修正大量錯字

因為我所開辦的課程都會全程錄影,好讓學員可以複習課程內容,最近幾次的課程我還開始幫影片上字幕,讓大家在複習的時候,更能夠理解我在課程中提到的一些偏技術的「專有名詞」。有些不住在臺灣的學員,也有可能會聽不懂臺灣這邊經常聽到的時事口頭禪,我時常會在課程中講一些「時事梗」來活絡氣氛,但是有些學員可能會聽不太懂,這些字幕就是為了讓大家更容易理解課程內容與笑點。我幾乎都是利用超大上下文視窗(context window)的 Google AI Studio 來幫我校正 Whisper 產生的字幕,這篇文章我就來教大家這個技巧。

... 繼續閱讀 ...

如何用 Docker 搭配 NVIDIA CUDA 執行 OpenAI Whisper 的最新 turbo 模型

前幾天 OpenAI 悄悄的發佈了 Whisper 的最新 turbo 模型,這是一個多國語言的模型 (Multilingual model),而且這個 turbo 模型是 large-v3 模型的優化版本,提供更快的轉錄速度,但準確性卻只有輕微下降,整體參數數量只比 medium 模型稍微大一點點而已。我特別為此打造了一個可以利用 NVIDIA 的 CUDA 加速執行的 Docker 映像檔,讓大家可以輕鬆的在自己的電腦上執行這個模型。

... 繼續閱讀 ...

如何以最小下載量的方式取得 Git Repo 中特定資料夾下的特定檔案類型

我在一小時 No-Code 打造可搜尋的 AI 知識庫系統 (RAG)課程中有準備一個知識庫範例,可以將整份 angular.dev 網站轉成知識庫所需的文字檔案。由於 angular.dev 網站內容都是開源的,放在 GitHub 的 angular/angular Repo 中的 adev 目錄下。但這個 Repo 有 30,486 個 Commits,檔案數與下載量都非常大,如果只想取得特定目錄下的檔案,就需要動用一些 Git 的進階技巧,今天我想來分享一下我是如何快速下載 Git Repo 中特定資料夾下的所有 *.md 檔案,並且批次轉成 *.txt 的過程。

... 繼續閱讀 ...

淺談 LLM 大型語言模型的 Temperature、Top-P 和 Top-K 參數

深度學習模型在自然語言處理 (NLP) 領域中扮演著重要的角色,而調整模型的參數可以影響生成的文字風格和品質。在大語言模型中,TemperatureTop-PTop-K 是常見的參數,用於控制文字生成過程中的隨機性創造性。我自己在開發 LLM 應用時,主要也都只會去調整 Temperature 而已,其實 Top-PTop-K 很少去調他,因為每次調整都沒有什麼好結果,之前因為不太理解這兩個參數的真正含意,最後還是回歸預設值處理。這篇文章我打算好好的理一理這幾個參數的真正含意。

... 繼續閱讀 ...