如何管理华为GSM调制解调器文件的音频输入和输出?

2024-06-02 06:09:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个华为E173 USB加密狗连接到一个树莓PI。 我正在尝试使用该设备拨打和接听电话

出于我的目的,需要(i)保存呼叫文件的音频,以及(ii)从输入文件向电话呼叫发送音频

据我所知(我找不到任何官方指南),E173加密狗设置了三个新设备(如果我错了,请纠正我):

  • /dev/ttyUSB0用于命令
  • /dev/ttyUSB1用于语音数据
  • /dev/ttyUSB2用于通知

为了启用电话呼叫,我运行以下命令:AT+CLIP=1AT+CRC=1AT+CNMI=1,2on/dev/ttyUSB0。 另外,如果我运行AT^CVOICE?,我会得到^CVOICE:0,8000,16,20。 最后,当我拨打/接听电话时,我在/dev/ttyUSB0上运行AT^DDSETEX=2以启用音频转发到/dev/ttyUSB1端口

在这一点上,我被卡住了

我知道有other similar posts trying to redirect microphone input and speakers output到加密狗,但我的目标是将对话保存到文件(在通话期间,我试图运行cat /dev/ttyUSB1 > filename.raw,但文件无法用标准软件打开,因此,如何转换?),同时,从文件发送语音(哪种格式?我试图用cat filename.raw > /dev/ttyUSB1filename.raw发送回/dev/ttyUSB1,但整个系统被冻结)

如何将音频保存到文件并从文件发回音频

我在互联网上发现some resources试图解释,对于类似的设备,音频必须以单声道、8000赫兹的数字频率发送,并数字化到16位。通过查看AT^CVOICE?命令的结果,在我的例子中也应该应用这些参数。 同样,该资源告诉我们“音频数据应以每0.02秒320字节的间隔分批馈送至调制解调器音频端口”。 我甚至尝试过采用这种方法,但运气不佳


Tags: 文件数据端口dev命令raw语音filename