iOS 原生自带的离线语音识别---speech framework

本文介绍了如何使用iOS自带的speech framework进行离线语音识别,特别是从CAF音频格式转换为MP3并识别本地文件的过程。同时提到了获取用户权限的方法,并指出该框架仅能处理本地音频文件的局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这阵子公司一直想要搞个语音发送命令!本来科达讯飞用的好好的,但是!价格简直有点小贵了!!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被转换的音频文件位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值