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