Python構建AI語音與文本互轉輔助工具的方法 原創
當今課堂的多元化程度遠超以往,學生群體涵蓋有不同需求的神經多樣性學習者(Neurodiverse learners:指的是大腦神經發育模式與典型學生不同的學習者,包括自閉癥、ADHD、閱讀障礙等神經多樣性學習者群體的統稱)。盡管這類學習者具有獨特優勢,但傳統教學方法難以滿足其需求。
在此情況下,AI驅動的無障礙工具可發揮作用。從實時字幕到自適應閱讀支持,AI正使課堂更具全納性。
本文將涵蓋以下內容:
- 闡釋全納教育的實際意義。
- 介紹AI對神經多樣性學習者的支持方式。
- 提供兩個 Python 實操演示:一是使用本地 Whisper 實現語音轉文本(Speech-to-Text免費且無需 API 密鑰)
二是利用 Hugging Face SpeechT5 完成文本轉語音(Text-to-Speech) - 給出適用于 Windows 和 macOS/Linux 用戶的現成項目結構、要求及故障排除提示。
目錄
- 先決條件
- 缺失文件說明
- 全納教育的概念
- 工具集:教師可即刻嘗試的五類AI無障礙工具
- 平臺差異:Windows與macOS/Linux設置
- 實踐操作:基于Python構建簡易無障礙工具包
- 快速設置指南
- 代碼對課堂的影響
- 開發者使命:實現全納教育
- 挑戰與考量
- 展望未來
先決條件
開始操作前,需滿足以下條件:
- 結論
- 安裝 Python 3.8 及以上版本。Windows 用戶若未安裝,可從 ??python.org?? 下載最新版本;macOS 用戶通常已預裝 python3。
- 設置虛擬環境(venv),使用虛擬環境有助于保持環境的整潔性,建議采用。
- 安裝 ??FFmpeg??,該工具是 Whisper 讀取音頻文件的必要依賴。
- 若使用 Windows 系統,需安裝 PowerShell;若使用 macOS/Linux 系統,則需安裝終端。
- 具備運行Python腳本的基本能力。
提示:若對Python環境不熟悉,無需擔憂,后續每個步驟均會提供相應的設置命令。
缺失文件說明
GitHub倉庫中未包含部分文件,這是經過考量的有意安排。這些文件的生成或獲取方式如下:一部分文件會在特定操作過程中自動生成,另一部分則需要在本地環境中進行創建或安裝。
.venv/ →虛擬環境文件夾:每位讀者需在本地自行創建該文件夾,創建方式如下:
python -m venv .venv1.FFmpeg安裝方法。
a.Windows:鑒于 FFmpeg 文件體積較大(約 90MB),項目文件中未包含該文件,用戶需自行下載 FFmpeg 安裝包進行安裝。
b.macOS:用戶可借助 Homebrew 包管理器,執行命令“brew install ffmpeg”完成 FFmpeg 的安裝。
c.Linux:用戶可使用系統的包管理器,通過執行“sudo apt install ffmpeg”命令來安裝 FFmpeg。
(注:FFmpeg 是一款功能強大的跨平臺開源多媒體處理工具,可用于音視頻的錄制、轉換、編解碼、剪輯及流媒體傳輸等多種操作。)
2.輸出文件。
運行文本轉語音腳本時會生成“output.wav”文件。該文件不在 GitHub 代碼庫中,而是在執行腳本時于本地機器上創建。
為保證代碼庫的整潔性,通過.gitignore 文件排除了以下文件:
# Ignore virtual environments
.venv/
env/
venv/
# Ignore binary files
ffmpeg.exe
*.dll
*.lib
# Ignore generated audio (but keep sample input)
*.wav
*.mp3
!lesson_recording.mp3代碼庫涵蓋了學習過程中所需的全部關鍵文件,具體如下:
- requirements.txt(詳細內容見下文)
- transcribe.py 和 tts.py(“實踐操作”部分將對其進行逐步講解)
- requirements.txt:
openai-whisper
transformers
torch
soundfile
sentencepiece
Numpy通過以上方式,項目所需的全部資源準備完畢。
全納教育(Inclusive Education)的概念
全納教育并非僅僅是把有不同需求的學生聚集在同一教室,其核心目標是營造一個能使每個學生都得以充分發展的學習環境。
常見的學習障礙類型如下:
- 閱讀困難:如患有閱讀障礙癥的情況。
- 溝通難題:涉及言語或聽力障礙問題。
- 感官負擔過重或注意力難以集中:常見于自閉癥、多動癥患者。
- 記筆記和理解困難。
AI可通過提供字幕、朗讀、自適應節奏以及替代性溝通工具等方式,幫助減少上述學習障礙。
工具集:教師可即刻嘗試的五類AI無障礙工具
- 微軟沉浸式閱讀器:具備文本轉語音、閱讀引導和翻譯功能。
- 谷歌實時轉錄:為言語或聽力輔助提供實時字幕。
- ??Otter.ai??:可實現自動記筆記和內容總結。
- Grammarly / Quillbot:輔助寫作,增強文本的可讀性與清晰度。
- Seeing AI(微軟):為視障學習者描述文本和場景。
實際案例
患有閱讀障礙癥的學生可借助沉浸式閱讀器,在聽課本內容的同時對照文字閱讀;有聽力損失的學生則能利用實時轉錄功能跟上課堂討論。這些技術應用上的小改變,為全納教育帶來了顯著的積極效果。
平臺差異:Windows與macOS/Linux設置
大多數代碼在不同操作系統上的運行邏輯一致,但設置命令存在一定差異。
創建虛擬環境
若要在PowerShell中使用 Python 3.8 或更高版本創建并激活虛擬環境,可按以下步驟操作:
1.創建虛擬環境。
py -3.12 -m venv .venv2.激活虛擬環境。
.\.venv\Scripts\Activate激活虛擬環境后,PowerShell提示符會改變,表明已進入虛擬環境。這種設置方式有利于依賴項的管理,能夠實現項目環境的相互隔離。
對于MacOS 用戶,若需在 bash shell(這是一種常用的命令行解釋器(shell),是 UNIX 和類 UNIX 系統(如 Linux、macOS)默認的 shell 之一,用于接收和執行用戶輸入的命令,是用戶與操作系統內核交互的接口)中使用 Python 3 創建并激活虛擬環境,可按以下步驟操作:
1.創建虛擬環境。
python3 -m venv .venv2.激活虛擬環境。
source .venv/bin/activate激活后,bash 提示符會發生變化,以此表明已進入虛擬環境開展工作。該設置有助于依賴項的管理,可確保項目環境相互隔離。
Windows系統FFmpeg安裝指引:
- 下載 FFmpeg 安裝包:通過訪問 FFmpeg 官方網站,獲取適用于 Windows 系統的最新版本 FFmpeg 安裝包。
- 解壓下載的文件:安裝包下載完成后,對其進行解壓操作以提取其中的內容。解壓后可得到多個文件,其中包含 ffmpeg.exe 可執行文件。
- 復制 ffmpeg.exe:對于使用 ffmpeg.exe 可執行文件,存在兩種配置方式:
- 項目文件夾配置:將 ffmpeg.exe 直接復制到項目文件夾中。采用此方式,項目無需對系統設置進行修改即可訪問 FFmpeg 功能。
- 系統路徑添加:可將包含 ffmpeg.exe 的目錄添加到系統的 PATH 環境變量中。完成該操作后,能夠在任意命令提示符窗口中直接使用 FFmpeg,而無需指定其具體位置。
此外,包含所有必要文件及說明的完整項目文件夾,可從 GitHub 進行下載。文章末尾提供了 GitHub 存儲庫的鏈接。
MocOS系統FFmpeg安裝指引:
若要在macOS系統上安裝FFmpeg,可借助Homebrew這一廣泛應用的 macOS 包管理器,具體操作步驟如下:
- 打開終端:可在“應用程序”目錄下的“實用工具”文件夾中找到“終端”應用并打開。
- 安裝 Homebrew(若未安裝):將以下命令復制粘貼至終端,然后按下回車鍵,隨后依照屏幕提示完成操作。/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安裝 FFmpeg:待Homebrew安裝完畢,在終端中執行相應命令以完成 FFmpeg 的安裝。
brew install ffmpeg執行該命令后,系統會自動下載并安裝 FFmpeg,安裝完成后,FFmpeg 即可在系統中正常使用。
Linux系統(Debian/Ubuntu)FFmpeg安裝指引:
在基于 Debian 的系統(例如 Ubuntu)上安裝 FFmpeg,可使用 APT 包管理器,具體操作如下:
1.打開終端:一般可在系統的應用程序菜單中找到 “終端” 并打開。
2.更新軟件包列表:在安裝新軟件前,建議更新軟件包列表。在終端中運行以下命令:
sudo apt update3.安裝 FFmpeg:軟件包列表更新完成后,通過運行以下命令安裝 FFmpeg:
sudo apt install ffmpeg上述步驟完成后,FFmpeg 將在 macOS 或 Linux 系統上完成安裝并可隨時使用。
運行 Python 腳本:
- Windows系統:python script.py 或者py script.py
- macOS/Linux系統:python3 script.py
在后續相關步驟中,涉及不同系統操作差異的部分將以“macOS/Linux說明”進行標注,以便用戶能依據自身系統順利完成操作。
實踐操作:基于Python構建簡易無障礙工具包
搭建以下兩個小型演示項目:
- 基于Whisper模型的語音轉文本項目(本地運行,免費)
- 基于Hugging Face SpeechT5模型的文本轉語音項目
(1)基于 Whisper模型的語音轉文本項目(本地運行,免費)
項目搭建內容:
編寫一個Python腳本,讀取一段簡短的 MP3 音頻文件,并在終端輸出其轉錄文本。
選擇Whisper的原因
Whisper 是一個性能穩健的開源語音識別(Speech-to-Text, STT)模型。其本地部署版本適合初學者,無需申請API密鑰,無調用配額限制,初次安裝完成后可離線運行,保障數據隱私且提升使用靈活性。
Whisper安裝方法(使用PowerShell):
# Activate your virtual environment
# Example: .\venv\Scripts\Activate
# Install the openai-whisper package
pip install openai-whisper
# Check if FFmpeg is available
ffmpeg -version
# If FFmpeg is not available, download and install it, then add it to PATH or place ffmpeg.exe next to your script# Example: Move ffmpeg.exe to the script directory or update PATH environment variable
在運行 Whisper 之前,應能在此處看到一個版本字符串。
注意:MacOS 用戶可在其終端中使用與上述相同的代碼片段。
若尚未安裝 FFmpeg,可使用以下命令進行安裝:
macOS 系統:
brew install ffmpegLinux( Ubuntu/Debian)系統:
sudo apt install ffmpeg創建transcribe.py:
import whisper
# Load the Whisper model
model = whisper.load_model("base") # Use "tiny" or "small" for faster speed
# Transcribe the audio file
result = model.transcribe("lesson_recording.mp3", fp16=False)
# Print the transcriptprint("Transcript:", result["text"])代碼的工作機制如下:
- whisper.load_model("base"):首次執行該代碼時,系統會下載并加載指定的模型,后續運行會對該模型進行緩存處理。
- model.transcribe(...):此函數承擔音頻解碼、語言檢測以及文本推理的任務。
- fp16=False:該參數用于避免使用半精度 GPU 運算,以此保證代碼能夠在 CPU 環境下正常運行。
- result["text"]:最終生成的轉錄文本字符串。
運行:
python transcribe.py預期輸出:

語音轉文本成功:Whisper將輸出從lesson_recording.mp3中識別出的句子。
若要在macOS或Linux系統上運行transcribe.py腳本,可在終端中使用以下命令:
python3 transcribe.py常見問題及解決方法:
- 轉錄時出現 FileNotFoundError:此問題表明未找到 FFmpeg。需安裝 FFmpeg,并通過 ffmpeg -version 命令確認安裝情況。
- 在CPU上運行速度極慢:可切換為tiny或small模型,使用 whisper.load_model("small") 進行切換。
(2)基于Hugging Face SpeechT5模型的文本轉語音項目
項目搭建內容:
編寫一個Python腳本,該腳本能夠將一段簡短字符串轉換為語音,并保存為名為output.wav的WAV文件。
選擇 SpeechT5 的原因
SpeechT5 是一款被廣泛應用的開源模型,具備在 CPU 上運行的能力,易于進行演示,且使用過程中無需 API 密鑰。
在(PowerShell)Windows 系統上安裝所需軟件包:
# Activate your virtual environment
# Example: .\venv\Scripts\Activate
# Install the required packages
pip install transformers torch soundfile sentencepiece注意:Mac OS 用戶可以在其終端中使用與上述相同的代碼片段。
創建tts.py:
from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan
import soundfile as sf
import torch
import numpy as np
# Load models
processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
# Speaker embedding (fixed random seed for a consistent synthetic voice)
g = torch.Generator().manual_seed(42)
speaker_embeddings = torch.randn((1, 512), generator=g)
# Text to synthesize
text = "Welcome to inclusive education with AI."
inputs = processor(text=text, return_tensors="pt")
# Generate speech
with torch.no_grad():
speech = model.generate_speech(inputs["input_ids"], speaker_embeddings, vocoder=vocoder)
# Save to WAV
sf.write("output.wav", speech.numpy(), samplerate=16000)
print("? Audio saved as output.wav")預期輸出:

文本轉語音操作完成。SpeechT5 已生成音頻,并將其保存為 output.wav 文件。
代碼的工作機制如下:
- SpeechT5Processor:該組件負責為模型準備輸入文本。
- SpeechT5ForTextToSpeech:此模塊用于生成梅爾頻譜圖(mel-spectrogram),該頻譜圖包含語音內容信息。
- SpeechT5HifiGan:作為一種聲碼器,其作用是將頻譜圖轉換為可播放的波形。
- speaker_embedding:這是一個 512 維的向量,代表著一種特定的“聲音”。對其進行設定后,每次運行程序時都能產生一致的合成聲音。
注意:若希望每次重新打開項目時都使用相同的聲音,需使用以下代碼片段保存一次性嵌入:
import numpy as np
import torch
# Save the speaker embeddings
np.save("speaker_emb.npy", speaker_embeddings.numpy())
# Later, load the speaker embeddings
speaker_embeddings = torch.tensor(np.load("speaker_emb.npy"))運行:
python tts.py注意:在 MacOS/Linux 系統中,使用 python3 tts.py 命令來運行與上述相同的代碼。
預期結果:
- 終端顯示:? Audio saved as output.wav(音頻已保存為 output.wav)
- 文件夾中生成一個新文件:output.wav

常見問題及解決方法:
- ImportError: sentencepiece 未找到 → 執行 pip install sentencepiece 進行安裝。
- Windows 上的 Torch 安裝問題 →
# Activate your virtual environment
# Example: .\venv\Scripts\Activate
# Install the torch package using the specified index URL for CPU
pip install torch --index-url https://download.pytorch.org/whl/cpu注意:首次運行時通常速度較慢,這是因為模型可能仍在下載過程中,屬于正常現象。
(3)可選:通過 OpenAI API使用Whisper
功能:
無需在本地運行 Whisper,可直接調用 OpenAI 的 Whisper API(whisper - 1)。將音頻文件上傳至 OpenAI 服務器,服務器完成轉錄后,會將文本返回。
使用 API 的原因:
- 無需在本地安裝或運行 Whisper 模型,可節省磁盤空間和設置時間。
- 借助 OpenAI 的基礎設施運行,若本地電腦性能較差,使用該 API 進行轉錄速度會更快。
- 若已在課堂或應用程序中使用 OpenAI 服務,調用此API是不錯的選擇。
注意事項:
- 需要 API 密鑰。
- 需要啟用計費功能,且免費試用額度通常較小。
- 需要網絡連接,這與本地 Whisper 演示有所不同。
獲取 API 密鑰的方法:
- 訪問 OpenAI 的 API 密鑰頁面。
- 使用 OpenAI 賬戶登錄,若沒有則需創建一個。
- 點擊 “Create new secret key”(創建新的密鑰)。
- 復制生成的密鑰,其格式類似 sk - xxxxxxxx.... ,需當作密碼一樣妥善保管,切勿公開分享,也不要推送到 GitHub 上。
步驟 1:設置 API 密鑰
在 PowerShell(僅當前會話)中:
# Set the OpenAI API key in the environment variable
$env:OPENAI_API_KEY="your_api_key_here"或者,可在 PowerShell 中通過setx命令永久設置環境變量,具體操作如下:
setx OPENAI_API_KEY "your_api_key_here"此命令會將 OPENAI_API_KEY 環境變量設置為指定的值。需注意,應把 “your_api_key_here” 替換為實際的 API 密鑰。該更改會在未來的 PowerShell 會話中生效,但可能需要重啟當前會話或開啟新會話,才能使更改生效。
驗證環境變量已設置:
若要在 PowerShell 中查看環境變量的值,可使用 echo 命令,具體操作如下:
echo $env:OPENAI_API_KEY該命令會在 PowerShell 會話中顯示 OPENAI_API_KEY 環境變量的當前值。若該變量已完成設置,將打印出具體值;若未設置,將不返回任何內容或顯示為空行。
步驟 2:安裝 OpenAI Python 客戶端
若要在 PowerShell 中通過 pip 安裝 OpenAI Python 客戶端,可使用以下命令:
pip install openai執行此命令,系統將下載并安裝 OpenAI 包,安裝完成后,便能夠在 Python 項目中與 OpenAI 的 API 進行交互。在運行該命令前,請確保系統已安裝 Python 和 pip。
步驟3:創建transcribe_api.py
from openai import OpenAI
# Initialize the OpenAI client (reads API key from environment) client = OpenAI()
# Open the audio file and create a transcription
with open("lesson_recording.mp3", "rb") as f: transcript = client.audio.transcriptions.create( model="whisper-1", file=f
)
# Print the transcript
print("Transcript:", transcript.text)步驟4:運行
python transcribe_api.py預期輸出:
Transcript: Welcome to inclusive education with AI.常見問題及解決方法:
- 錯誤:insufficient_quota:此錯誤表明已用完免費額度,若需繼續使用,需添加付費方式。
- 上傳緩慢:若音頻文件較大,可先對其進行壓縮,例如將 WAV 格式轉換為 MP3 格式。
- 密鑰未找到:需仔細檢查終端會話中是否設置了 $env:OPENAI_API_KEY。?
本地 Whisper 與 API Whisper 的選擇探討
Feature | Local Whisper (on your machine) | OpenAI Whisper API (cloud) |
Setup | Needs Python packages + FFmpeg | Just install openai client + set API key |
Hardware | Runs on your CPU (slower) or GPU (faster) | Runs on OpenAI’s servers (no local compute needed) |
Cost | ? Free after initial download | Pay per minute of audio (after free trial quota) |
Internet required | ? No (fully offline once installed) | Yes (uploads audio to OpenAI servers) |
Accuracy | Very good - depends on model size (tiny → large) | Consistently strong - optimized by OpenAI |
Speed | Slower on CPU, faster with GPU | Fast (uses OpenAI’s infrastructure) |
Privacy | Audio never leaves your machine | Audio is sent to OpenAI (data handling per policy) |
一般而言,可參考以下原則進行選擇:
- 若需要免費的離線轉錄功能,或者正在處理敏感數據,建議使用本地版 Whisper。
- 若更注重便捷性,不介意付費使用,且期望無需進行本地設置即可快速完成轉錄,那么 API 版 Whisper 更為合適。
快速設置備忘單
Task | Windows (PowerShell) | macOS / Linux (Terminal) |
Create venv | py -3.12 -m venv .venv | python3 -m venv .venv |
Activate venv | .\.venv\Scripts\Activate | source .venv/bin/activate |
Install Whisper | pip install openai-whisper | pip install openai-whisper |
Install FFmpeg | Download build → unzip → add to PATH or copy ffmpeg.exe | brew install ffmpeg (macOS) sudo apt install ffmpeg (Linux) |
Run STT script | python transcribe.py | python3 transcribe.py |
Install TTS deps | pip install transformers torch soundfile sentencepiece | pip install transformers torch soundfile sentencepiece |
Run TTS script | python tts.py | python3 tts.py |
Install OpenAI client (API) | pip install openai | pip install openai |
Run API script | python transcribe_api.py | python3 transcribe_api.py |
針對 MacOS M1/M2 用戶的專業建議:若需實現 Metal GPU 加速,可能需要安裝特定的 PyTorch 版本。請查閱 ??PyTorch 安裝指南??,獲取適配的安裝包。
代碼對課堂的影響
無論選用本地的 Whisper、云 API 或是 SpeechT5 來實現文本轉語音,此時開發者都已經擁有了一個可用的原型,該原型具備以下功能:
- 將口語授課內容轉換為文本。
- 為偏好聽覺輸入的學生朗讀文本。這構成了技術基礎,但關鍵問題在于:這些基礎功能如何在真實課堂場景下為教師和學生提供支持?
開發者使命:實現全納教育
嘗試將兩個代碼片段整合為一個簡單的課堂輔助應用程序,該程序需具備以下能力:
- 實時為教師的話語添加字幕。
- 應要求大聲朗讀文本記錄或課本段落。
之后可思考進一步的擴展方向:
- 增加用于非語言交流的符號識別功能。
- 為多元化課堂添加多語言翻譯功能。
- 為網絡連接不佳的學校添加離線支持。
利用現有的開源AI工具,這些設想是可以實現的。
挑戰與考量
為全納教育進行開發,不僅僅是代碼層面的問題,還需應對一些重要挑戰:
- 隱私保護:必須保護學生數據,尤其是涉及錄音的數據。
- 成本控制:解決方案需對不同規模的學校具有合理的價格和可擴展性。
- 教師培訓:教育工作者需要得到支持,以便自信地使用這些工具。
- 平衡把握:AI應輔助教師,不能取代學習過程中關鍵的人文因素。
展望未來
全納教育的未來可能涉及多模態AI,包括結合語音、手勢、符號甚至情感識別的系統。未來甚至可能出現腦機接口和可穿戴設備,助力目前被排斥在外的學習者實現無縫交流。
有一點很明確:當教師、開發者和神經多樣性學習者共同設計解決方案時,全納教育才能發揮最大效能。
結論
AI并非要取代教師,而是助力教師惠及每一位學生。通過采用AI驅動的無障礙工具,課堂能夠轉變為讓神經多樣性學習者茁壯成長的空間。
行動呼吁:
- 教師:可以在一堂課中嘗試使用一款相關工具。
- 開發者:可以利用上述代碼片段制作自己的全納課堂工具原型。
- 政策制定者:可支持將無障礙性作為教育核心的倡議。
全納教育不再是夢想,正逐步成為現實。審慎使用AI,全納教育有望成為新常態。
譯者介紹
劉濤,51CTO社區編輯,某大型央企系統上線檢測管控負責人。
原文標題:??How to Build AI Speech-to-Text and Text-to-Speech Accessibility Tools with Python???,作者:??OMOTAYO OMOYEMI??

















