主页 > 其他  > 

【技术分享】RK3399Ubuntu通过Python实现录音和播放功能

【技术分享】RK3399Ubuntu通过Python实现录音和播放功能

​本文基于IDO-SBC3968 Ubuntu 系统通过Python脚本实现录音和播放功能。

IDO-SBC3968采用RK3399国产六核64位CPU高性能处理器,支持4K HDMI2.0显示,接口丰富,拥有千兆以太网,全协议TypeC接口,USB3.0 ,eDP 和 双通道LVDS 屏幕接口,支持4G/5G模块和WIFI蓝牙,支持6轴G-Sensor,支持Linux/Android系统,适用于高端商显,银行自助终端,工业计算机,机器人等诸多行业。

产品规格书可查看深圳触觉智能官网产品中心

安装依赖库

配置前需要安装好相应的依赖库。

#apt-get update #apt-get install python3 #apt-get install portaudio19-dev python-all-dev python3-all-dev #apt-get install libasound-dev libportaudio2 libportaudiocpp0 #apt-get install python3-pip #pip3 install pyaudio

录音脚本

在编辑脚本前需要知道使用的是哪个声卡。

可以通过“aplay -l ”获取。

#aplay -l **** List of PLAYBACK Hardware Devices **** card 0: rockchipes8316c [rockchip,es8316-codec], device 0: ff880000.i2s-ES8316 HiFi ES8316 HiFi-0 []   Subdevices: 1/1   Subdevice #0: subdevice #0 card 1: Audio [USB Audio], device 0: USB Audio [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 for i 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") # stop Recording 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 import pyaudio import wave CHUNK = 44100 FILENAME = './output.wav' def play(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)     while data != b'':         stream.write(data)         data = wf.readframes(CHUNK)     stream.stop_stream()     stream.close()     p.terminate() play()

播放

#python3 ./play.py

通过以上指令,就可以播放刚录的音频文件了。

标签:

【技术分享】RK3399Ubuntu通过Python实现录音和播放功能由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【技术分享】RK3399Ubuntu通过Python实现录音和播放功能