2

有什么方法可以知道 Swift 下载语音模型需要多长时间?

4

1 回答 1

1

尝试使用OSSSpeechKit. 它可以在没有模型的情况下工作。这是链接:https ://cocoapods.org/pods/OSSSpeechKit#speech-to-text 。

示例代码:

import UIKit
import OSSSpeechKit

class ViewController: UIViewController, OSSSpeechDelegate {
    
    let speechKit = OSSSpeech.shared
    
    func didCompleteTranslation(withText text: String) {
        textView.text = text
        
    }
    
    func didFailToProcessRequest(withError error: Error?) {
        let alert = UIAlertController(title: "Error Processing Request", message: "We couldn't process your request.", preferredStyle: .alert)
        let action = UIAlertAction(title: "OK", style: .default)
        alert.addAction(action)
        present(alert, animated: true) {
            self.speechKit.endVoiceRecording()
            self.endButton.isHidden = true
            self.startButton.isHidden = false
        }
        
    }
    
    
    func didFinishListening(withText text: String) {
        textView.text = text
        
    }
    
    func authorizationToMicrophone(withAuthentication type: OSSSpeechKitAuthorizationStatus) {
        
    }
    
    func didFailToCommenceSpeechRecording() {
        let alert = UIAlertController(title: "Error Accessing the Microphone", message: "Make sure to check that you have given the app access to your microphone.", preferredStyle: .alert)
        let action = UIAlertAction(title: "OK", style: .default)
        alert.addAction(action)
        present(alert, animated: true) {
            self.speechKit.endVoiceRecording()
            self.endButton.isHidden = true
            self.startButton.isHidden = false
        }
        
    }
    
    @IBOutlet weak var textView: UITextView!
    
    @IBOutlet weak var startButton: UIButton!
    
    @IBOutlet weak var endButton: UIButton!
    
    @IBAction func startButtonPressed(_ sender: UIButton) {
        startButton.isHidden = true
        endButton.isHidden = false
        speechKit.recordVoice()
        
    }
    
    @IBAction func endButtonPressed(_ sender: UIButton) {
        endButton.isHidden = true
        startButton.isHidden = false
        speechKit.endVoiceRecording()
        
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        speechKit.delegate = self
        endButton.isHidden = true
        
    }

}

我很确定这会奏效。

于 2020-11-26T11:36:12.590 回答