在開始前,請先至 GitHub 上 Clone 相關資源到環境裡。
$ git clone https://github.com/ml-explore/mlx-examples.git
完成後,進入資料夾
$ cd ./mlx-examples/whisper
裡面有以下資源:
# whisper
.
|-- whisper # MLX 專用的 whisper 套件
|-- README.md
|-- benchmark.py # 評估效能
|-- requirements.txt # 環境檔
`-- test.py # 測試
根據 README 指示,先安裝好 Python 環境,Python 版本筆者是使用 3.9。
pip install -r requirements.txt
接著安裝多媒體轉換函式庫,這邊是使用 macOS 的 brew 來安裝,brew 安裝方法請直接到官網上複製指令到終端機上執行即可,完成後也不要忘記再執行它提示的指令。
brew install ffmpeg
在這邊就完成環境的準備了。
接著,文檔也提供了一個範本,如下
import whisper
text = whisper.transcribe(speech_file)["text"]
把 speech_file 改成檔案物件或是檔案路徑,接著直接執行就會直接開始轉換。
但文件並沒有提到其他的使用方法,因此筆者就翻了一下原始碼...
# ./whisper/whisper/transcribe.py
def transcribe(
audio: Union[str, np.ndarray, mx.array],
*,
model: str = "tiny",
verbose: Optional[bool] = None,
temperature: Union[float, Tuple[float, ...]] = (0.0, 0.2, 0.4, 0.6, 0.8, 1.0),
compression_ratio_threshold: Optional[float] = 2.4,
logprob_threshold: Optional[float] = -1.0,
no_speech_threshold: Optional[float] = 0.6,
condition_on_previous_text: bool = True,
initial_prompt: Optional[str] = None,
prepend_punctuations: str = "\"'“¿([{-",
append_punctuations: str = "\"'.。,,!!??::”)]}、",
**decode_options,
):
...
發現是有其他常見的選項可以調整,像是:
以下是筆者自己實驗用的程式碼:
import whisper
path = './TEST.mp3'
fileRoot = '/'.join(path.split('/')[:-1])
fileName = path.split('/')[-1].split('.')[0]
text = whisper.transcribe(path, model='medium', verbose=True)["text"]
open(f'{fileRoot}/{fileName}-whisper.txt', 'w').write(text)
將上方的 path 改成自己檔案的路徑再執行,就會看見轉譯的過程,並且完成後會在同一目錄下看到同檔名的 TXT 純文字字幕檔。