開發程式錄自己電腦的聲音

今天利用了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
  • VB-Audio Virtual Cable:用於路由系統音訊的虛擬音訊設備。

安裝

  1. 複製或下載程式碼:git clone <repository-url> cd system-audio-recorder或下載 ZIP 檔案並解壓縮。
  2. 安裝 Python 依賴:pip install PySide6 sounddevice soundfile numpy pydub
  3. 安裝 FFmpeg
    • 根據你的作業系統安裝 FFmpeg,並確保在終端執行 ffmpeg -version 正常運作。
  4. 安裝 VB-Audio Virtual Cable

使用方法

  1. 配置 VB-Audio Virtual Cable
    • 開啟 Windows 音訊設定:
      • 右鍵點擊任務欄音量圖標 > 聲音 > 播放標籤。
      • 將 VB-Audio Virtual Cable 設為預設播放設備。
    • 確認錄音設備:
      • 聲音 > 錄音標籤,確保 VB-Audio Virtual Cable 已啟用。
  2. 啟動程式
    • 執行程式碼:python record_system_audio_gui.py
    • GUI 將顯示設備選擇、檔案路徑選擇、開始/停止按鈕、錄音時間、音量顯示和狀態標籤。
  3. 操作步驟
    • 選擇設備:在下拉選單中選擇 VB-Audio Virtual Cable(通常索引為 1)。
    • 選擇儲存路徑:點擊「選擇檔案」,指定 MP3 檔案輸出路徑(預設為 system_audio.mp3)。
    • 開始錄音:點擊「開始錄音」,程式開始錄音,顯示錄音時間(MM:SS)和音量(百分比和進度條)。
    • 停止錄音:點擊「停止錄音」,程式儲存錄音為 WAV,轉換為 MP3,刪除 WAV,並顯示完成狀態。
    • 監聽音訊:若需同時監聽,參考「常見問題」中的監聽設定。

監聽系統音訊

若在錄音時無法聽到系統音訊(因為音訊被路由到 VB-Audio),可透過以下方法實現同時錄音和監聽:

  1. Windows「聆聽此設備」
    • 聲音 > 錄音 > VB-Audio Virtual Cable > 屬性 > 聆聽 > 勾選「聆聽此設備」。
    • 選擇你的揚聲器或耳機作為播放設備,點擊「應用」。
  2. VB-Audio VoiceMeeter
    • 下載並安裝 VoiceMeeter Banana
    • 將 VB-Audio 設為輸入,將揚聲器設為輸出,啟用監聽。
  3. 多輸出設備
    • 使用 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)。
    • 檢查檔案路徑是否有效(避免無寫入權限的目錄)。
  • 問題:WAV 檔案未刪除
    • 檢查日誌是否顯示權限錯誤。
    • 確認程式有權限刪除檔案。
  • 問題:GUI 凍結
    • 檢查日誌是否顯示執行緒或音訊流錯誤。
    • 嘗試降低採樣率(程式中 self.sample_rate = 22050)。

注意事項

  • 記憶體使用:長時間錄音可能消耗大量記憶體,建議錄音數分鐘後停止。
  • FFmpeg 設定:確保 FFmpeg 可執行,否則 MP3 轉換將失敗。
  • 音量計算:音量顯示基於 RMS,可能需根據實際音訊調整縮放因子。
  • 檔案路徑:選擇 MP3 路徑時,程式自動生成臨時 WAV 路徑,確保目錄可寫。

聯繫與貢獻

如有問題或建議,請提交 issue 或聯繫開發者。歡迎貢獻程式碼以改進功能!

授權

本程式採用 MIT 授權,詳見 LICENSE 檔案。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *