本文基于IDO-SBC3968 Ubuntu 系統通過Python腳本實現錄音和播放功能。
IDO-SBC3968采用RK3399國產六核64位CPU高性能處理器,支持4KHDMI2.0顯示,接口豐富,擁有千兆以太網,全協議TypeC接口,USB3.0 ,eDP 和 雙通道LVDS 屏幕接口,支持4G/5G模塊和WIFI藍牙,支持6軸G-Sensor,支持Linux/Android系統,適用于高端商顯,銀行自助終端,工業計算機,機器人等諸多行業。
安裝依賴庫
配置前需要安裝好相應的依賴庫。
#apt-getupdate
#apt-getinstall python3
#apt-getinstall portaudio19-dev python-all-dev python3-all-dev
#apt-getinstall libasound-dev libportaudio2 libportaudiocpp0
#apt-getinstall python3-pip
#pip3 install pyaudio
錄音腳本
在編輯腳本前需要知道使用的是哪個聲卡。
可以通過“aplay -l ”獲取。
#aplay-l
**** ListofPLAYBACKHardwareDevices****
card0: rockchipes8316c[rockchip,es8316-codec], device0: ff880000.i2s-ES8316HiFiES8316HiFi-0[]
Subdevices: 1/1
Subdevice#0: subdevice#0
card1: Audio[USB Audio], device0: USBAudio[USB Audio]
Subdevices: 1/1
Subdevice#0: subdevice#0
由上面的打印可知USB聲卡是Card1。
編輯python 錄音腳本。
#vi record.py
import pyaudio
import wave
import os
CHUNK = 44100#采樣頻率
FORMAT = pyaudio.paInt16
CHANNELS = 1#聲卡通道
RATE = 44100
RECORD_SECONDS = 5#時長
WAVE_OUTPUT_FILENAME = "output.wav"#導出的音頻文件
audio = pyaudio.PyAudio()
# start Recording
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
input_device_index = 1,
frames_per_buffer=CHUNK)
print("recording...")
frames = []
count=0
fori in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
#for i in range(0, 5):
#while count< 5:
data = stream.read(CHUNK)
frames.append(data)
# count+= 1
print("finished recording")
# stopRecording
stream.stop_stream()
stream.close()
audio.terminate()
waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))
waveFile.close()
錄音
#python3 ./record.py
錄音結束后我們就可以得到 output.wav 錄音文件了。
播放腳本
編輯python 播放腳本。
#vi play.py
importpyaudio
importwave
CHUNK = 44100
FILENAME = './output.wav'
defplay(filename = FILENAME):
wf = wave.open(filename, 'rb')
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output_device_index=0,
output=True)
data = wf.readframes(CHUNK)
whiledata != b'':
stream.write(data)
data = wf.readframes(CHUNK)
stream.stop_stream()
stream.close()
p.terminate()
play()
播放
#python3 ./play.py
通過以上指令,就可以播放剛錄的音頻文件了。
-
處理器
+關注
關注
68文章
19409瀏覽量
231189 -
python
+關注
關注
56文章
4807瀏覽量
85040 -
RK3399
+關注
關注
2文章
211瀏覽量
25033
發布評論請先 登錄
相關推薦
高清電視盒子方案分享,紅外遙控適配過程全解析
![高清電視盒子方案分享,紅外遙控適配過程全解析](https://file1.elecfans.com/web3/M00/02/9C/wKgZO2dg5nyAcdlKAAAkEBqjS5A660.jpg)
Banana Pi BPi-M5 pro 瑞芯微RK3576開發板評測
![Banana Pi BPi-M5 pro 瑞芯微<b class='flag-5'>RK</b>3576開發板評測](https://file1.elecfans.com//web3/M00/00/E6/wKgZPGdO1I2AIZVwAABMZN5hUKk170.jpg)
RK3576單板發布倒計時:RK3399與RK3576對比
![<b class='flag-5'>RK</b>3576單板發布倒計時:<b class='flag-5'>RK3399</b>與<b class='flag-5'>RK</b>3576對比](https://file1.elecfans.com/web3/M00/00/E4/wKgZPGdOyB-AciiDAAOefBM0UVs289.png)
瑞芯微RK3399開發板Android7.1修改網絡優先級方法,觸覺智能SBC3968開發板演示
![瑞芯微<b class='flag-5'>RK3399</b>開發板Android7.1修改網絡優先級方法,觸覺智能SBC3968開發板演示](https://file1.elecfans.com/web2/M00/09/1E/wKgZomcF-n2Ab-lfAAB48dZVtU4377.png)
你要的錄音&播放錄音功能,直接用!Air201資產定位模組LuatOS快速入門
![你要的<b class='flag-5'>錄音</b>&<b class='flag-5'>播放</b><b class='flag-5'>錄音</b><b class='flag-5'>功能</b>,直接用!Air201資產定位模組LuatOS快速入門](https://file1.elecfans.com/web2/M00/06/60/wKgZombkyvaAUaWlABZH07LDusM007.png)
NVF04M錄音芯片在寵物喂食器的應用:錄音播放功能,內置SPI閃存
![NVF04M<b class='flag-5'>錄音</b>芯片在寵物喂食器的應用:<b class='flag-5'>錄音</b><b class='flag-5'>播放</b><b class='flag-5'>功能</b>,內置SPI閃存](https://file.elecfans.com/web2/M00/42/BC/pYYBAGJ6JAOAWhY7AAAjPnDlpp8975.jpg)
強固型平板RTC-1010RK:滿足各行業客戶高規格需求
![強固型平板RTC-1010<b class='flag-5'>RK</b>:滿足各行業客戶高規格需求](https://file1.elecfans.com/web1/M00/F3/3D/wKgaoWcSKByAUlmgAADRVUm1cuE389.png)
AIoT設備新一代高性能處理器瑞芯微RK3576,東勝物聯RK3588等核心板定制開發
![AIoT設備新一代高性能處理器瑞芯微<b class='flag-5'>RK</b>3576,東勝物聯<b class='flag-5'>RK</b>3588等核心板定制開發](https://file1.elecfans.com/web2/M00/EF/18/wKgZomZv1aeAc0p3AABYAeEJsvo704.png)
ARM架構:鴻道Intewell操作系統芯生態之·瑞芯微RK3399
慧視Viztra-ME025圖像處理板 中端性能的RK3399Pro板卡
![慧視Viztra-ME025圖像處理板 中端性能的<b class='flag-5'>RK3399</b>Pro板卡](https://file.elecfans.com/web2/M00/7E/AE/poYBAGOGzF6AIDgVAAAaMH2b3yk969.png)
HarmonyOS實戰開發-如何實現音頻低時延錄制和播放,AudioVivid音樂播放的相關功能
【OpenHarmony鴻蒙實戰】在RK3399開發板實現智能門禁人臉識別
![【OpenHarmony鴻蒙實戰】在<b class='flag-5'>RK3399</b>開發板<b class='flag-5'>實現</b>智能門禁人臉識別](https://file1.elecfans.com/web2/M00/C5/25/wKgZomX6oiGAGD-TAACp2nHxw6U669.jpg)
評論