Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

How to Use SFSpeechAudioBufferRecognitionRequest in Your iOS App

In the Apple ecosystem, speech recognition is a powerful feature that can significantly enhance user experience by allowing voice commands and dictation. One of the key components to achieve this is the SFSpeechAudioBufferRecognitionRequest class, part of the Speech framework. This class is crucial for handling real-time audio input for speech recognition, making it ideal for applications that need to process live audio streams.

The importance of SFSpeechAudioBufferRecognitionRequest lies in its ability to handle audio buffers, which makes it suitable for applications like voice assistants, real-time transcription services, and interactive voice response systems. This article will guide you through the process of setting up and using SFSpeechAudioBufferRecognitionRequest in an iOS application.

Examples:

  1. Setting Up the Speech Framework

    First, you need to import the Speech framework and request authorization for speech recognition.

    import Speech
    
    class ViewController: UIViewController {
       override func viewDidLoad() {
           super.viewDidLoad()
    
           SFSpeechRecognizer.requestAuthorization { authStatus in
               switch authStatus {
               case .authorized:
                   print("Speech recognition authorized")
               case .denied, .restricted, .notDetermined:
                   print("Speech recognition not authorized")
               @unknown default:
                   fatalError("Unknown authorization status")
               }
           }
       }
    }
  2. Creating and Configuring the Audio Engine

    You need an AVAudioEngine to capture live audio input.

    let audioEngine = AVAudioEngine()
    let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))
    var recognitionRequest: SFSpeechAudioBufferRecognitionRequest?
    var recognitionTask: SFSpeechRecognitionTask?
    
    func startRecording() {
       recognitionRequest = SFSpeechAudioBufferRecognitionRequest()
    
       guard let recognitionRequest = recognitionRequest else {
           fatalError("Unable to create an SFSpeechAudioBufferRecognitionRequest object")
       }
    
       let inputNode = audioEngine.inputNode
       let recordingFormat = inputNode.outputFormat(forBus: 0)
    
       inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { buffer, when in
           recognitionRequest.append(buffer)
       }
    
       audioEngine.prepare()
    
       do {
           try audioEngine.start()
       } catch {
           print("Audio Engine couldn't start because of an error: \(error.localizedDescription)")
       }
    
       guard let speechRecognizer = speechRecognizer, speechRecognizer.isAvailable else {
           print("Speech recognizer is not available")
           return
       }
    
       recognitionTask = speechRecognizer.recognitionTask(with: recognitionRequest) { result, error in
           if let result = result {
               print("Transcription: \(result.bestTranscription.formattedString)")
           } else if let error = error {
               print("Error recognizing speech: \(error.localizedDescription)")
           }
       }
    }
  3. Stopping the Audio Engine and Recognition Task

    Ensure you properly stop the audio engine and recognition task when done.

    func stopRecording() {
       audioEngine.stop()
       recognitionRequest?.endAudio()
       recognitionTask?.cancel()
       recognitionTask = nil
    }
  4. Handling User Interface and Permissions

    Remember to update your Info.plist file to request permission for speech recognition and microphone usage.

    <key>NSSpeechRecognitionUsageDescription</key>
    <string>Need access to speech recognition for transcribing your voice</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>Need access to microphone for recording your voice</string>

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.