美文网首页
苹果自带翻译API调用及代码实现

苹果自带翻译API调用及代码实现

作者: 山水域 | 来源:发表于2023-03-19 11:51 被阅读0次
    导入语音识别和翻译机器框架,可以按照以下步骤操作:
    1. 打开Xcode,选择您的项目。

    2. 在项目导航栏中,选择您的项目(不是targets)。

    3. 在“General”选项卡下找到“Linked Frameworks and Libraries”和“Embedded Binaries”,然后单击“+”按钮。

    4. 从弹出菜单中选择“Speech.framework”。

    5. 如果您想使用翻译机器框架,请继续单击“+”按钮并导入“Translation.framework”。

    6. 确认选择后单击“Add”。

    请注意,在使用语音识别和翻译机器框架之前,您需要在Info.plist文件中请求用户授权以访问语音识别和麦克风。可以通过添加以下键和值来完成此操作:

    
    <key>NSSpeechRecognitionUsageDescription</key>
    <string>您的应用需要访问语音识别以便进行翻译。</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>您的应用需要访问麦克风以便进行语音输入。</string>
    
    
    在需要翻译的代码中,使用以下代码示例进行调用:
    import Foundation
    import Speech
    
    class TranslationService {
      private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "zh-CN"))
      
      func translate(text: String, completion: @escaping (Result<String, Error>) -> Void) {
        let request = SFSpeechTranslationRequest(locale: Locale(identifier: "en"))
        request.sourceSpeech = AVSpeechUtterance(string: text)
        
        speechRecognizer?.recognitionTask(with: request) { (result, error) in
          guard let translationResult = result else {
            completion(.failure(error!))
            return
          }
          
          completion(.success(translationResult.translations.first?.formattedString ?? ""))
        }
      }
    }
    
    
    //引入头文件
    import Speech
    
    // 请求语音识别授权
    SFSpeechRecognizer.requestAuthorization { authStatus in
        if authStatus == .authorized {
            print("授权成功")
        }
    }
    
    // 创建SpeechRecognizer对象,用于识别语音
    let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "zh-CN"))
    // 创建识别请求 )
    let request = SFSpeechURLRecognitionRequest(url: audioFileURL)
    // 开始识别语音
    recognizer?.recognitionTask(with: request, resultHandler: { (result, error) in
        if let result = result {
            // 获取语音识别结果
            let transcript = result.bestTranscription.formattedString
    
            // 创建翻译请求
            let options: [String: Any] = [
                "sourceLanguage": "en",
                "targetLanguage": "zh-CN"
            ]
            let request = NSLinguisticTagger.Request(tagSchemes: [.languageTranslation], options: options)
    
            // 进行翻译
            NSLinguisticTagger(tagSchemes: [.languageTranslation], options: Int(), schemes: nil).string = transcript
            let translation = try? NSLinguisticTagger(tagSchemes: [.languageTranslation], options: Int(), schemes: [NSLinguisticTagScheme.languageTranslation.rawValue]).linguisticTags(in: NSRange(location: 0, length: transcript.count), scheme: .languageTranslation, options: options, tokenRanges: nil).first
    
            print("识别结果:\(transcript)")
            print("翻译结果:\(translation ?? "")")
        } else if let error = error {
            print(error.localizedDescription)
        }
    })
    

    相关文章

      网友评论

          本文标题:苹果自带翻译API调用及代码实现

          本文链接:https://www.haomeiwen.com/subject/clqyrdtx.html