国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

樹莓派學習手記——使用Python錄音

Sanchi / 3956人閱讀

摘要:有的時候我們想讓樹莓派能夠錄音,以實現語音控制等功能。所以今天我們總結一下用在樹莓派上使用錄音的過程。準備硬件樹莓派上自帶的接口只能作為語音輸出口,不能接麥克風。

有的時候我們想讓樹莓派能夠錄音,以實現語音控制等功能。所以今天我們總結一下用在樹莓派上使用Python錄音的過程。

準備硬件

樹莓派上自帶的3.5mm接口只能作為語音輸出口,不能接麥克風。所以我們需要另外購買USB聲卡,某寶上5元左右就能買到,當然你還需要一個麥克風。總費用應該在20元以內。

檢查硬件是否正常

使用arecord -l可以列出所有錄音設備,一般輸出如下:

arecord -l
 List of CAPTURE Hardware Devices 
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

同樣地,aplay -l可以列出所有播放設備,輸出中也能找到形如 Device [USB Audio Device] 的設備。

我們可以直接在命令行執行Linux自帶的錄音/播放命令,測試硬件是否正常:

arecord -D hw:1,0 -t wav -c 1 -r 44100 -f S16_LE test.wav
aplay -D hw:0,0 test.wav

arecord 是錄音命令,其中 hw:1,0 表示 card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]card 1 , device 0 ,如果你的USB聲卡錄音設備不是 card 1 , device 0 ,還請進行相應修改。另外,錄音過程需要手動按CTRL + C結束。

aplay 是播放命令,其中 hw:0,0 表示樹莓派板載音頻接口,如果你把耳機插在USB聲卡接口,還請進行相應修改,如改成 hw:1,0

*如果你發現錄制的音頻內沒有聲音,只有細微的雜音,但 arecord -laplay -l 列出的設備中確實有USB聲卡。那么你可以嘗試著把麥克風接口拔出來一些,只插進去2/3,或許能夠解決你的問題。筆者不是很明白其中的緣由,如果你有什么想法懇請留言告知。

安裝pyaudio

在Python中執行錄音命令需要pyaudio模塊,直接用pip命令安裝:

pip install pyaudio

如果你使用pip命令下載速度很慢,或許修改pip源可以幫到你。

*如果你使用了virtualenv,一般會發現pyaudio安裝失敗。這種情況下你需要安裝APT中的PortAudio開發頭文件,然后安裝PyAudio:

sudo apt-get install portaudio19-dev
pip install pyaudio
使用Python錄音

該例程修改自官方主頁例程PyAudio。

import pyaudio
import wave
import os
import sys

CHUNK = 512
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

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

print("recording...")

frames = []

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

print("done")

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

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

執行后會錄制一段5秒的音頻,輸出為同目錄下的output.wav文件。

python3 rec.py
* 隱藏錯誤消息

一般情況下,在樹莓派上執行上述Python代碼后,你會看到非常多的ALSA報錯和JACK報錯:

ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition "cards.bcm2835.pcm.front.0:CARD=0"

......

......

connect(2) call to /tmp/jack-1000/default/jack_0 failed (err=No such file or directory)
attempt to connect to server failed

但你會發現其實能夠正常地錄音。如果你不想看到這些錯誤消息,可以在代碼中加入下述命令隱藏錯誤:

os.close(sys.stderr.fileno())
小結

使用Python錄音很簡單,你還可以在GPIO口上接入一個按鈕,修改例程,實現按下按鈕自動開始錄音的功能。下一步的目標是把Python錄音和Cloud Speech API語音識別結合起來。

感謝你閱讀文章!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44654.html

相關文章

  • 分享 | 撞壞遙控車后,有個技術大牛爸爸是種怎樣的體驗

    摘要:在我已經制作完成一輛可以運行的遙控車時,公司發布了一個自駕車項目,來展示自動駕駛汽車的工作原理。需要注意的是,這里用的都是語言而非,其主要原因有兩個一方面,近來似乎已成為運用機器學習技術時實際使用的語言。 最近,Mapbox 的 Android 工程師 Antonio 使用計算機視覺和機器學習技術,為他的女兒 Violeta 重新制作了一臺遙控車。接下來我們看看 Antonio 是如何...

    ConardLi 評論0 收藏0
  • 樹莓安裝Docker

    摘要:因為樹莓派是架構的,所以的安裝和使用也都有不同。反過來別的上的鏡像,也不能在樹莓派上運行。有一個叫的倉庫制作了非常多樹莓派專用,可以參考下。樹莓派參考參考樹莓派安裝,最難的在于正確的選擇源和添加,才能找到版本適合的并下載。 因為樹莓派是ARM架構的,所以Docker的安裝和使用也都有不同。需要講的內容比較多,這里單挑出來。 樹莓派是基于ARM架構的,和PC不同。所以即使樹莓派上能做一些...

    Shisui 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<