--- title: OpenAI Whisper Vs Alibaba SenseVoice Small emoji: ⚡ colorFrom: gray colorTo: purple sdk: gradio sdk_version: 5.31.0 app_file: app.py pinned: false license: mit short_description: Compare OpenAI Whisper against FunAudioLLM SenseVoice. --- # OpenAI Whisper vs. Alibaba SenseVoice Comparison This Space lets you compare **faster-whisper** models against Alibaba FunAudioLLM’s **SenseVoice** models for automatic speech recognition (ASR), featuring: * Multiple faster-whisper and SenseVoice model choices. * Language selection for each ASR engine (full list of language codes). * Explicit device selection (GPU or CPU) with ZeroGPU support (`spaces.GPU` decorator). * Speaker diarization with `pyannote.audio`, displaying speaker-labeled transcripts. * Simplified Chinese to Traditional Chinese conversion via `opencc`. * Color-coded and scrollable diarized transcript panel. * Semi‑streaming output: incremental transcript updates accumulate live as each segment or speaker turn completes. * Semi‑real‑time diarized transcription: speaker‑labeled segments appear incrementally as they finish processing. ## 🚀 How to Use 1. Upload an audio file or record from your microphone. 2. **Faster-Whisper ASR**: 1. Select a model variant from the dropdown. 2. Choose the transcription language (default: auto-detect). 3. Pick device: GPU or CPU. 4. Toggle diarization on/off. 5. Click **Transcribe with Faster-Whisper**. 3. **SenseVoice ASR**: 1. Select a SenseVoice model. 2. Choose the transcription language. 3. Pick device: GPU or CPU. 4. Toggle punctuation on/off. 5. Toggle diarization on/off. 6. Click **Transcribe with SenseVoice**. 4. View both the plain transcript and the color-coded, speaker-labeled diarized transcript side by side. ## 📁 Files * **app.py** Main Gradio app implementing dual ASR pipelines with device control, diarization, and Chinese conversion. * **requirements.txt** Python dependencies: Gradio, PyTorch, Transformers, faster-whisper, funasr, pyannote.audio, pydub, opencc-python-reimplemented, ctranslate2, termcolor, NVIDIA cuBLAS/cuDNN wheels. * **Dockerfile** (optional) Defines a CUDA 12 + cuDNN 9 environment for GPU acceleration. ## ⚠️ Notes * **Hugging Face token**: Set `HF_TOKEN` (or `HUGGINGFACE_TOKEN`) in Space secrets for authenticated diarization model access. * **GPU allocation**: GPU resources are acquired only when GPU is explicitly selected, thanks to the `spaces.GPU` decorator. * **Python version**: Python 3.10+ recommended. * **System `ffmpeg`**: Ensure `ffmpeg` is installed on the host (or via Dockerfile) for audio processing. ## 🛠️ Dependencies * **Python**: 3.10+ * **gradio** (>=3.39.0) * **torch** (>=2.0.0) & **torchaudio** * **transformers** (>=4.35.0) * **faster-whisper** (>=1.1.1) & **ctranslate2** (==4.5.0) * **funasr** (>=1.0.14) * **pyannote.audio** (>=2.1.1) & **huggingface-hub** (>=0.18.0) * **pydub** (>=0.25.1) & **ffmpeg-python** (>=0.2.0) * **opencc-python-reimplemented** * **termcolor** * **nvidia-cublas-cu12**, **nvidia-cudnn-cu12** ## License MIT --- ## 中文(臺灣)版本 # OpenAI Whisper vs. Alibaba FunASR SenseVoice 功能說明 本 Space 同步比較 **faster-whisper** 與 Alibaba FunAudioLLM 的 **SenseVoice** 模型,提供以下特色: * 多款 faster-whisper 與 SenseVoice 模型可自由選擇 * 支援設定辨識語言(完整語言代碼列表) * 明確切換運算裝置 (GPU/CPU),並以 `spaces.GPU` 裝飾器延後 GPU 資源配置 * 整合 `pyannote.audio` 做語者分離,並在抄本中標示不同語者 * 使用 `opencc` 自動將簡體中文轉為臺灣繁體中文 * 彩色區隔對話式抄本,可捲動瀏覽及複製 * 半即時分段輸出:每段語音或語者片段處理完成後,即時累積顯示抄本 ## 🚀 使用步驟 1. 上傳音檔或透過麥克風錄製音訊。 2. **Faster-Whisper ASR**: 1. 選擇模型版本。 2. 選定辨識語言 (預設自動偵測)。 3. 切換運算裝置:GPU 或 CPU。 4. 開啟/關閉語者分離功能。 5. 點擊「Transcribe with Faster-Whisper」。 3. **SenseVoice ASR**: 1. 選擇 SenseVoice 模型。 2. 設定辨識語言。 3. 切換運算裝置:GPU 或 CPU。 4. 開啟/關閉標點符號功能。 5. 開啟/關閉語者分離功能。 6. 點擊「Transcribe with SenseVoice」。 4. 左右並排查看純文字抄本與彩色標註的語者分離抄本。 ## 📁 檔案結構 * **app.py** Gradio 應用程式原始碼,實作雙 ASR 流程,包含運算裝置選擇、語者分離與中文轉換。 * **requirements.txt** Python 相依套件:Gradio、PyTorch、Transformers、faster-whisper、funasr、pyannote.audio、pydub、opencc-python-reimplemented、ctranslate2、termcolor、cuBLAS/cuDNN。 * **Dockerfile**(選用) 定義 CUDA 12 + cuDNN 9 的 Docker 環境。 ## ⚠️ 注意事項 * **Hugging Face 權杖**:請在 Space Secrets 設定 `HF_TOKEN` 或 `HUGGINGFACE_TOKEN`,以便下載語者分離模型。 * **GPU 分配**:僅於選擇 GPU 時才會申請 GPU 資源。 * **Python 版本**:建議使用 Python 3.10 以上。 * **系統 ffmpeg**:請確保主機或容器中已安裝 ffmpeg,以支援音訊處理。 ## 🛠️ 相依套件 * **Python**: 3.10+ * **gradio**: >=3.39.0 * **torch** & **torchaudio**: >=2.0.0 * **transformers**: >=4.35.0 * **faster-whisper**: >=1.1.1 & **ctranslate2**: ==4.5.0 * **funasr**: >=1.0.14 * **pyannote.audio**: >=2.1.1 & **huggingface-hub**: >=0.18.0 * **pydub**: >=0.25.1 & **ffmpeg-python**: >=0.2.0 * **opencc-python-reimplemented** * **termcolor** * **nvidia-cublas-cu12**, **nvidia-cudnn-cu12** ## 授權 MIT