iOS如何实现语音转文字功能?

1.项目中添加权限

Privacy - Speech Recognition Usage Description : 需要语音识别权限才能实现语音转文字功能

2.添加头文件

#import <AVFoundation/AVFoundation.h>

#import<Speech/Speech.h>

3.实现语音转文字逻辑:

3.1 根据wav语音文件创建请求

objectivec 复制代码
    SFSpeechURLRecognitionRequest *recognitionRequest
    = [[SFSpeechURLRecognitionRequest alloc] initWithURL:[NSURL fileURLWithPath:wavFilePath]];

3.2 创建语言配置

objectivec 复制代码
    SFSpeechRecognizer *recongnizer

    = [[SFSpeechRecognizer alloc] initWithLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];

3.2 根据请求和语言配置创建任务,同时设置代理<SFSpeechRecognitionTaskDelegate>对象为自己

objectivec 复制代码
    SFSpeechRecognitionTask *task =

    = [recongnizer recognitionTaskWithRequest:recognitionRequest delegate:self];

3.3 取消方法:

objectivec 复制代码
    [task cancel];

3.4 代理方法:

objectivec 复制代码
// Called for all recognitions, including non-final hypothesis
- (void)speechRecognitionTask:(SFSpeechRecognitionTask *)task didHypothesizeTranscription:(SFTranscription *)transcription{
    NSLog(@"转换中...");
}

// Called when recognition of all requested utterances is finished.
// If successfully is false, the error property of the task will contain error information
- (void)speechRecognitionTask:(SFSpeechRecognitionTask *)task didFinishSuccessfully:(BOOL)successfully{
    NSLog(@"转换完成 是否成功:%d",successfully);

}

以上为针对单个语音文件转文字的整体逻辑

在实际使用中,会涉及到多条语音转文字,此时有一个环节需要注意:

当我们进行多条语音转文字时,可以将上述逻辑封装为一个一个类个体,每进行一条语音转文字时,创建一个对象进行处理

用多个对象来进行各自的语音转文字行为.

但是!!!这是行不通的.

因为即使每一个语音转文字逻辑是一个对象个体,但依然在未处理完当前的任务时,处理下一个语音转文字,会导致当前的语音转文字行为直接终止,并失败.

所以,针对这块儿,可以做成队列形式,也就是当有多个语音转文字的操作时,我们是可以将这多个任务添加到队列中,并依次执行.(这里队列是用数组方式实现)

最后展示实际代码截图

调用方式:

具体demo可以参考链接

https://gitee.com/huanxin666/EMDemo-oc

语音消息长按可显示出转文字的按钮,点击转文字即可进行转换

效果如下

Demo演示iOS语音转文字实现

相关推荐
sramdram1 天前
离线语音识别芯片_低功耗智能语音识别IC解决方案
人工智能·语音识别·语音识别芯片·离线语音识别芯片
声讯电子1 天前
把喇叭贴在麦克风边上,还能全双工通话?——AU-60把“不可能”变成了“常规操作”
语音识别·spi·ai降噪·usb接口·回音消除·波束定向
大鱼>1 天前
Whisper+GPT-SoVITS:语音识别到音色克隆的全链路实战
gpt·whisper·语音识别
2601_958352901 天前
语音模组选型:模拟、数字、USB、I²S接口如何取舍?AU-60 同时支持四种接口的硬件方案解析
人工智能·语音识别·dsp模组
国服第二切图仔1 天前
LabGuide (Pip) 的 【GPASS x 百宝箱】参赛获奖之路
人工智能·语音识别·gpass x 百宝箱·蚂蚁
kingcjh971 天前
手搓语音识别异步处理H5
人工智能·语音识别
OpenApi.cc1 天前
Mocode 开发文档平台
人工智能·深度学习·目标检测·自然语言处理·语音识别
pla888888882 天前
热词驱动,智辨声纹——从ASR热词到说话人日志的尝试:海光DCU环境部署FunASR热词语音识别系统(说话人日志已集成,含完整代码)
人工智能·语音识别
空中湖2 天前
Spring AI 多模态实战:让 AI 看图、听声音、生成图片
人工智能·spring·语音识别
怪奇云呼军3 天前
闪电智能Voice Agent:ASR 首字延迟和最终识别延迟怎么测?t0-t3 埋点实战
人工智能·科技·ai·语音识别