官方样例可以识别,但微信录音的AMR文件无法识别,看了音频一个是AMR,一个是AMR-WB,不知道有什么不同?
{"err_msg":"param format invalid.","err_no":3312,"sn":"712591039621542009946"}
收藏
点赞
0
个赞
请登录后评论
TOP
切换版块
你用官方示例,就换一下file_get_contents的第一个形参,可以跑通吗
如果可以,那就是你微信下载下来的文件不是8k或16k采样率的单通道文件,需要转码矫正,符合协议规定才能正确识别。
至于怎么转码,请百度各类转码库
格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。推荐pcm 采样率 :16000 固定值。 编码:16bit 位深的单声道。
百度服务端会将非pcm格式,转为pcm格式,因此使用wav、amr会有额外的转换耗时。
#3zyflzxy回复于2018-11-13 10:12:07
$result =$client->asr(file_get_contents('weixinrecord/wx_15420089809971.amr'), 'amr', 16000, array(
'dev_pid' => 1536,
));
按照官方写的
怎么写你就要自己百度咯,我不是phper。
一般用ffmpeg或者naudio库转成pcm 8k或16k采样率
要转成什么码?怎么写?
我不是php哦 你把那个filegetcontent的内容换成16k的示例音频可以跑的话就说明你微信录出来的可能要转个码之类的矫正一下
这样写的对吗?
$result =$client->asr(file_get_contents('weixinrecord/wx_15420089809971.amr'), 'amr', 16000, array(
'dev_pid' => 1536,
));
你这个错误应该是传参的时候错了,参数格式无效了
顺便可以看一下采样率和通道数。