今天利用了Grok 3寫了一個Pyside GUI介面的錄音機,為了是錄自己電腦的聲音。
https://github.com/smallken99/record_system_audio.git
目前覺得Grok3厲害於ChatGPT,我指的是免費版。
系統音訊錄音器
這是一個基於 Python 的圖形介面應用程式,使用 VB-Audio Virtual Cable 錄製系統音訊,支援即時音量監控、連續錄音,並自動將錄音轉換為 MP3 格式。
功能
- 圖形使用者介面(GUI):使用 PySide6 構建,提供直觀的錄音控制介面。
- 系統音訊錄音:透過 VB-Audio Virtual Cable 捕獲系統音訊(例如音樂、影片)。
- 即時監控:
- 顯示錄音持續時間,格式為
MM:SS。 - 即時顯示音訊輸入音量(以百分比和進度條表示)。
- 顯示錄音持續時間,格式為
- 連續錄音:錄音直到手動停止,無固定時長限制。
- MP3 轉換:錄音儲存為 WAV 後,自動轉換為 MP3,並刪除臨時 WAV 檔案。
- 設備選擇:透過下拉選單選擇輸入設備(例如 VB-Audio Virtual Cable)。
- 檔案路徑自訂:支援透過檔案對話框選擇 MP3 輸出路徑。
前置需求
- 作業系統:Windows 10 或 11(其他作業系統可能需要不同的虛擬音訊設定)。
- Python:版本 3.8 或更高。
- 依賴項:
- Python 函式庫:
PySide6:用於圖形介面。sounddevice:用於音訊錄製。soundfile:用於 WAV 檔案處理。numpy:用於音訊資料處理。pydub:用於 MP3 轉換。- 安裝命令:
pip install PySide6 sounddevice soundfile numpy pydub
- FFmpeg:MP3 轉換所需。
- Windows:從 FFmpeg 官方網站 下載,並將
ffmpeg.exe加入系統 PATH。 - macOS:透過 Homebrew 安裝:
brew install ffmpeg。 - Linux:透過套件管理器安裝,例如
sudo apt install ffmpeg。
- Windows:從 FFmpeg 官方網站 下載,並將
- Python 函式庫:
- VB-Audio Virtual Cable:用於路由系統音訊的虛擬音訊設備。
- 從 VB-Audio 官方網站 下載並安裝。
安裝
- 複製或下載程式碼:git clone <repository-url> cd system-audio-recorder或下載 ZIP 檔案並解壓縮。
- 安裝 Python 依賴:pip install PySide6 sounddevice soundfile numpy pydub
- 安裝 FFmpeg:
- 根據你的作業系統安裝 FFmpeg,並確保在終端執行
ffmpeg -version正常運作。
- 根據你的作業系統安裝 FFmpeg,並確保在終端執行
- 安裝 VB-Audio Virtual Cable:
- 從 VB-Audio 官方網站 下載並安裝。
- 按照設定指南將其設為預設播放設備。
使用方法
- 配置 VB-Audio Virtual Cable:
- 開啟 Windows 音訊設定:
- 右鍵點擊任務欄音量圖標 > 聲音 > 播放標籤。
- 將 VB-Audio Virtual Cable 設為預設播放設備。
- 確認錄音設備:
- 聲音 > 錄音標籤,確保 VB-Audio Virtual Cable 已啟用。
- 開啟 Windows 音訊設定:
- 啟動程式:
- 執行程式碼:python record_system_audio_gui.py
- GUI 將顯示設備選擇、檔案路徑選擇、開始/停止按鈕、錄音時間、音量顯示和狀態標籤。
- 操作步驟:
- 選擇設備:在下拉選單中選擇 VB-Audio Virtual Cable(通常索引為
1)。 - 選擇儲存路徑:點擊「選擇檔案」,指定 MP3 檔案輸出路徑(預設為
system_audio.mp3)。 - 開始錄音:點擊「開始錄音」,程式開始錄音,顯示錄音時間(
MM:SS)和音量(百分比和進度條)。 - 停止錄音:點擊「停止錄音」,程式儲存錄音為 WAV,轉換為 MP3,刪除 WAV,並顯示完成狀態。
- 監聽音訊:若需同時監聽,參考「常見問題」中的監聽設定。
- 選擇設備:在下拉選單中選擇 VB-Audio Virtual Cable(通常索引為
監聽系統音訊
若在錄音時無法聽到系統音訊(因為音訊被路由到 VB-Audio),可透過以下方法實現同時錄音和監聽:
- Windows「聆聽此設備」:
- 聲音 > 錄音 > VB-Audio Virtual Cable > 屬性 > 聆聽 > 勾選「聆聽此設備」。
- 選擇你的揚聲器或耳機作為播放設備,點擊「應用」。
- VB-Audio VoiceMeeter:
- 下載並安裝 VoiceMeeter Banana。
- 將 VB-Audio 設為輸入,將揚聲器設為輸出,啟用監聽。
- 多輸出設備:
- 使用 VoiceMeeter 或 ASIO4ALL 將音訊同時路由到 VB-Audio 和揚聲器。
常見問題排查
- 問題:錄音檔案無聲音:
- 確認系統音訊輸出設為 VB-Audio Virtual Cable。
- 檢查 VB-Audio 音量設定(音訊混音器)。
- 確保播放音訊(例如音樂或影片)時錄音。
- 問題:音量顯示始終為 0%:
- 確認 VB-Audio 正確路由系統音訊。
- 調整程式中的音量縮放因子(
self.current_volume = rms / 0.1,可改為 0.01)。
- 問題:MP3 轉換失敗:
- 確認 FFmpeg 已安裝並加入 PATH(執行
ffmpeg -version)。 - 檢查檔案路徑是否有效(避免無寫入權限的目錄)。
- 確認 FFmpeg 已安裝並加入 PATH(執行
- 問題:WAV 檔案未刪除:
- 檢查日誌是否顯示權限錯誤。
- 確認程式有權限刪除檔案。
- 問題:GUI 凍結:
- 檢查日誌是否顯示執行緒或音訊流錯誤。
- 嘗試降低採樣率(程式中
self.sample_rate = 22050)。
注意事項
- 記憶體使用:長時間錄音可能消耗大量記憶體,建議錄音數分鐘後停止。
- FFmpeg 設定:確保 FFmpeg 可執行,否則 MP3 轉換將失敗。
- 音量計算:音量顯示基於 RMS,可能需根據實際音訊調整縮放因子。
- 檔案路徑:選擇 MP3 路徑時,程式自動生成臨時 WAV 路徑,確保目錄可寫。
聯繫與貢獻
如有問題或建議,請提交 issue 或聯繫開發者。歡迎貢獻程式碼以改進功能!
授權
本程式採用 MIT 授權,詳見 LICENSE 檔案。