问题背景
App 实现录音保存音频文件,并实现本地语音识别匹配功能。
通过网络请求上传通过语音匹配的音频文件。
服务器接收到文件并进行语音识别,使用的是第三方微软语音识别,只支持 PCM
数据源的 WAV
格式。
本地识别没有任何问题,上传到服务器的文件无法识别,微软库直接报错。猜测上传的音频个是问题,导致的问题。
问题代码
1 | - (NSDictionary *)getAudioSetting { |
在没有使用微软语音识别库之前,使用上面的代码没有任何问题。识别库更新之后,不识别上传的的音频文件。
一开始以为是因为没有使用浮点数采样导致音频文件被压缩。修改后依然没有解决问题。
经过和服务器的联调,发现 .wav 音频文件的头不信息服务区无法识别。
解决方案
当音频文件保存为 .wav
格式的时候,iOS11
以下的系统,.wav
文件的头部信息是没问题,但是在 iOS11+
.wav
文件的头部信息服务区识别不了。
需要设置 AVAudioFileTypeKey
来解决这个问题。代码如下:
1 | - (NSDictionary *)getAudioSetting { |