这阵子公司一直想要搞个语音发送命令!本来科达讯飞用的好好的,但是!价格简直有点小贵了!!8000元人民币识别2000台机子!四元一台的成本,公司舍不得钱所以!!!:
speech是iOS10.0新出的开源框架!如果你需要使用的话建议你先更新XCODE,swift也可以使用哟!不过我的项目没有用到swift,所以没有贴出来,总之!功能还是相当强大的!也很好用,不过此框架比较呆,只能使用本地的文件,很有局限性!而且我看网上很多教程基本都是识别的本地的文件!!! EXM? 很LOW有没有! 所以如果你的需求本不是一个.MP3 识别音乐中的内容的话!可以看下去!如果是只需要识别.MP3的话,看到语音识别就能满足你的需求了!
speechframework可以识别出MP3的语音。而且仅仅只能识别.MP3文件这种本地的音频文件(可播放的那种),但是我们需要的功能是识别麦克风自己说话的声音,所以还需要先获取麦克风的声音,使用AVAudioRecorder或许到本地的音频数据流。用AVAudioSession进行录制,再将录制得到的caf数据流转成MP3格式!存入字典上次本地的文件:
MP3生成成功: /var/mobile/Containers/Data/Application/5E32CD4F-6644-40BD-8AC7-6AC9836A65DD/Documents/myRecord.mp3
需要注意的是URL的使用方式不能用write!下面这种是识别不出来的:
[NSURL URLWithString:Str];
以下两种是可行的URL:
1.NSURL *url = [[NSBundle mainBundle] URLForResource:@"你好.mp3" withExtension:nil];
2.NSURL *url= [NSURL fileURLWithPath:self.mp3PathStr];
分享一段CAF转MP3代码免走弯路:
@try {
int read, write;
FILE *pcm = fopen([self.cafPathStr cStringUsingEncoding:1], "rb"); //source被转换的音频文件位置