SIM7600X USB Audio
来自Waveshare Wiki
树莓派Raspbian语音通话
由于SIM7600G-H 4G Module为了减小尺寸,在设计中没有自带音频输入输出接口,但SIM7600芯片可以通过USB端口中的Audio端口,在使用语音通话功能时以二进制方式输入和输出音频数据;本例程使用树莓派的音频输出接口与USB声卡的输入功能,通过USB端口进行数据传输实现实时语音通话。
硬件准备
- 树莓派开发板
- SIM7600G-H 4G Module
- USBtypeC数据线
- 可以正常使用通话服务的SIM卡
- 带麦克风的外接声卡设备(本例使用USB声卡)
硬件连接
- 在未上电前先将SIM卡插入SIM7600G-H 4G Module卡槽;
- 使用USB数据线将SIM7600G-H 4G Module与树莓派开发板连接到一起;
- 等待模块开机并连接到通讯网络,可见前文“NET灯工作状态说明”;
- 将声卡设备接入树莓派。
软件准备
输入运行命令确认SIM7600G-H驱动状态:
ls /dev/ttyUSB*
如果是最新树莓派系统应自带本模块驱动,显示有ttyUSB0到ttyUSB4共五个端口,无需另外安装;
安装python函数库:
#pyaudio是python的模块,在树莓派下安装pyaudio 首先需安装portaudio.dev sudo apt-get install portaudio.dev #然后使用 sudo apt-get install python-pyaudio #或 sudo apt-get install python3-pyaudio #python3
下载程序文件程序文件并解压。
根据所选声卡设备检查声卡驱动状态(本例使用的USB声卡为免驱声卡)
查询选定的音频设备编号,可以通过pyaudio模块来实现:
sudo python Audio_check.py
该程序会列出所有可用设备以及它们对应的编号,根据名称找到设备后记下其对应编号。
测试过程
由于树莓派系统或音频设备的差异,在运行例程前建议先对程序中的一些参数进行修改:
stream_in=p.open(format=p.get_format_from_width(2),channels=1,rate=8000,input=True,input_device_index=1,stream_callback=pcm_out) #本代码为初始化音频输入对象,"input_device_index=1"参数代表本对象对应的音频输入设备编号,不同设备之间可能有一定差别。
若音频输入有问题,首先检查设备是否能正常运行,如果设备正常可能是设备编号选择错误,可以尝试下面的环回测试程序:
sudo python Audio_test_R
该程序会在音频输出设备上播放音频输入设备接收的音频数据,如果没有声音可以尝试参考上节查询到的音频设备列表,修改pyaudio初始化对象语句中的“input_device_index”和“output_device_index”参数。
stream1=p.open(format=p.get_format_from_width(2), channels=1, rate=8000, input=True,input_device_index=1,stream_callback=pcm_in,frames_per_buffer=800) #参数input_device_index stream2=p.open(format=p.get_format_from_width(2), channels=1, rate=8000, output=True,output_device_index=0,stream_callback=pcm_out,frames_per_buffer=800) #参数output_device_index