语音到文本(Speech-to-Text, STT)是将人类语音转换为可读文本的技术。在iPhone开发中,可以通过多种API和SDK实现这一功能。
SFSpeechRecognizer (iOS 10+)
优势:
示例代码:
import Speech
func requestSpeechAuthorization() {
SFSpeechRecognizer.requestAuthorization { authStatus in
switch authStatus {
case .authorized:
print("授权成功")
case .denied:
print("用户拒绝授权")
case .restricted:
print("设备限制")
case .notDetermined:
print("未决定")
@unknown default:
print("未知状态")
}
}
}
func startRecording() {
let recognizer = SFSpeechRecognizer()
let request = SFSpeechURLRecognitionRequest(url: audioFileURL)
recognizer?.recognitionTask(with: request) { result, error in
guard let result = result else {
print("识别错误: \(error?.localizedDescription ?? "未知错误")")
return
}
if result.isFinal {
print("识别结果: \(result.bestTranscription.formattedString)")
}
}
}
优势:
常见类型:
腾讯云ASR示例:
// 需要先集成腾讯云SDK
let config = QCloudConfig(secretId: "your-secret-id", secretKey: "your-secret-key")
let recognizer = QCloudASRRecognizer(config: config)
recognizer.recognize(audioData: audioData) { result, error in
if let error = error {
print("识别错误: \(error.localizedDescription)")
return
}
print("识别结果: \(result?.text ?? "")")
}
问题1:识别准确率低
问题2:延迟高
问题3:权限问题
// 在Info.plist中添加
<key>NSSpeechRecognitionUsageDescription</key>
<string>需要语音识别权限以转换语音为文字</string>
<key>NSMicrophoneUsageDescription</key>
<string>需要麦克风权限以录制语音</string>
对于腾讯云相关服务,可以参考其官方文档获取最新的API和SDK集成指南。