无法识别微信录单音AMR文件
zyflzxy 发布于2018-11 浏览:1735 回复:8
0
收藏

官方样例可以识别,但微信录音的AMR文件无法识别,看了音频一个是AMR,一个是AMR-WB,不知道有什么不同?

{"err_msg":"param format invalid.","err_no":3312,"sn":"712591039621542009946"}

收藏
点赞
0
个赞
共8条回复 最后由用户已被禁言回复于2022-04
#9goJhou回复于2018-11
#8 zyflzxy回复
 #3zyflzxy回复于2018-11-13 10:12:07 $result =$client->asr(file_get_contents('weixinrecord/wx_15420089809971.amr'), 'amr', 16000, array( 'dev_pid' => 1536, )); 按照官方写的
展开

你用官方示例,就换一下file_get_contents的第一个形参,可以跑通吗

如果可以,那就是你微信下载下来的文件不是8k或16k采样率的单通道文件,需要转码矫正,符合协议规定才能正确识别。

至于怎么转码,请百度各类转码库

 

格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。推荐pcm 采样率 :16000 固定值。 编码:16bit 位深的单声道。

百度服务端会将非pcm格式,转为pcm格式,因此使用wav、amr会有额外的转换耗时。

0
#8zyflzxy回复于2018-11
#2 goJhou回复
你这个错误应该是传参的时候错了,参数格式无效了 顺便可以看一下采样率和通道数。
展开


 #3zyflzxy回复于2018-11-13 10:12:07
$result =$client->asr(file_get_contents('weixinrecord/wx_15420089809971.amr'), 'amr', 16000, array(
'dev_pid' => 1536,
));

按照官方写的

0
#7goJhou回复于2018-11
#6 zyflzxy回复
要转成什么码?怎么写?

怎么写你就要自己百度咯,我不是phper。

一般用ffmpeg或者naudio库转成pcm 8k或16k采样率

0
#6zyflzxy回复于2018-11
#5 goJhou回复
我不是php哦  你把那个filegetcontent的内容换成16k的示例音频可以跑的话就说明你微信录出来的可能要转个码之类的矫正一下
展开

要转成什么码?怎么写?

0
#5goJhou回复于2018-11
#4 zyflzxy回复
这样写的对吗?

我不是php哦  你把那个filegetcontent的内容换成16k的示例音频可以跑的话就说明你微信录出来的可能要转个码之类的矫正一下

0
#4zyflzxy回复于2018-11
#2 goJhou回复
你这个错误应该是传参的时候错了,参数格式无效了 顺便可以看一下采样率和通道数。
展开

这样写的对吗?

0
#3zyflzxy回复于2018-11

$result =$client->asr(file_get_contents('weixinrecord/wx_15420089809971.amr'), 'amr', 16000, array(
'dev_pid' => 1536,
));

0
#2goJhou回复于2018-11

你这个错误应该是传参的时候错了,参数格式无效了

顺便可以看一下采样率和通道数。

0
TOP
切换版块