溫馨提示×

python pyaudio 適用哪些開發環境

小樊
148
2024-11-25 22:23:12
欄目: 編程語言

Python PyAudio庫適用于多種開發環境,包括Windows、macOS和Linux操作系統。以下是其相關介紹:

安裝步驟

  • Windows

    1. 確保已安裝Python和pip。
    2. 使用pip安裝PyAudio:pip install pyaudio。如果遇到權限問題,可以嘗試使用管理員權限運行命令提示符。
    3. 如果上述方法仍然無法解決問題,可以直接下載PyAudio的whl文件進行安裝。
  • macOS

    1. 使用Homebrew安裝PortAudio:brew install portaudio。
    2. 使用pip安裝PyAudio:pip install pyaudio。
  • Linux

    1. 對于基于Debian的系統(如Ubuntu),使用以下命令安裝PortAudio和PyAudio:
      sudo apt-get install portaudio19-dev
      pip3 install pyaudio
      
    2. 對于基于RPM的系統(如Fedora),使用以下命令安裝PortAudio和PyAudio:
      sudo dnf install portaudio-devel
      pip3 install pyaudio
      ```。
      
      

示例代碼

以下是一個簡單的Python腳本示例,展示了如何使用PyAudio庫進行音頻錄制和播放:

錄音示例

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                    channels=CHANNELS,
                    rate=RATE,
                    input=True,
                    frames_per_buffer=CHUNK)

print("開始錄音...")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS))):
    data = stream.read(CHUNK)
    frames.append(data)

print("錄音結束!")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))

wf.close()

播放示例

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                    channels=wf.getnchannels(),
                    rate=wf.getframerate(),
                    output=True)

data = wf.readframes(CHUNK)

while data:
    stream.write(data)
    data = wf.readframes(CHUNK)

stream.stop_stream()
stream.close()
p.terminate()

通過上述步驟和示例代碼,您可以在不同的開發環境中成功使用PyAudio庫進行音頻處理。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女