Snabbstart: Känna igen tal i SWIFT på macOS med hjälp av tal-SDKQuickstart: Recognize speech in Swift on macOS using the Speech SDK

Snabb Starter är också tillgängliga för tal syntes.Quickstarts are also available for speech synthesis.

I den här artikeln får du lära dig hur du skapar en macOS-app i Swift med Cognitive Services Speech SDK för att skriva om tal som registrerats från en mikrofon till text.In this article, you learn how to create a macOS app in Swift using the Cognitive Services Speech SDK to transcribe speech recorded from a microphone to text.

FörutsättningarPrerequisites

Gå igenom den här listan med förhandskrav innan du sätter igång:Before you get started, here's a list of prerequisites:

Hämta tal-SDK för macOSGet the Speech SDK for macOS

Viktigt

När du väljer att ladda ned någon av Speech SDK för Cognitive Services-komponenterna på den här sidan accepterar du även dess licens.By downloading any of the Speech SDK for Azure Cognitive Services components on this page, you acknowledge its license. Se licensvillkoren för Microsoft-programvara för Speech SDK.See the Microsoft Software License Terms for the Speech SDK.

Observera att den här självstudien inte fungerar med tidigare version av SDK än 1.6.0.Note that this tutorial will not work with version of the SDK earlier than 1.6.0.

Cognitive Services Speech SDK för macOS distribueras som ett Ramverks paket.The Cognitive Services Speech SDK for macOS is distributed as a framework bundle. Den kan användas i Xcode-projekt som en CocoaPodeller hämtas från https://aka.ms/csspeech/macosbinary och länkas manuellt.It can be used in Xcode projects as a CocoaPod, or downloaded from https://aka.ms/csspeech/macosbinary and linked manually. Den här guiden använder en CocoaPod.This guide uses a CocoaPod.

Skapa ett Xcode-projektCreate an Xcode project

Starta Xcode och starta ett nytt projekt genom att klicka på File > New > Project (Arkiv > Nytt > Projekt).Start Xcode, and start a new project by clicking File > New > Project. I dialog rutan Mallval väljer du mallen "kakao app".In the template selection dialog, choose the "Cocoa App" template.

I dialogrutorna som följer gör du följande val:In the dialogs that follow, make the following selections:

  1. Dialogrutan Project Options (Projektalternativ)Project Options Dialog
    1. Ange namnet på snabbstartsappen, till exempel helloworld.Enter a name for the quickstart app, for example helloworld.
    2. Ange ett lämpligt organisations namn och en organisations identifierare om du redan har ett Apple Developer-konto.Enter an appropriate organization name and an organization identifier, if you already have an Apple developer account. I testsyfte kan du välja vilket namn som helst, till exempel testorg.For testing purposes, you can just pick any name like testorg. För att signera appen behöver du en korrekt etableringsprofil.To sign the app, you need a proper provisioning profile. Information finns på Apple Developer-webbplatsen.Refer to the Apple developer site for details.
    3. Se till att Swift är valt som språk för projektet.Make sure Swift is chosen as the language for the project.
    4. Inaktivera kryss rutorna om du vill använda storyboards och skapa ett dokument baserat program.Disable the checkboxes to use storyboards and to create a document-based application. Det enkla användar gränssnittet för exempel programmet kommer att skapas program mässigt.The simple UI for the sample app will be created programmatically.
    5. Inaktivera alla kryssrutor för test och kärndata.Disable all checkboxes for tests and core data.
  2. Välja projektkatalogSelect project directory
    1. Välj en katalog där projektet ska läggas till.Choose a directory to put the project in. Detta skapar en helloworld-katalog i den valda katalogen som innehåller alla filer för Xcode-projektet.This creates a helloworld directory in the chosen directory that contains all the files for the Xcode project.
    2. Inaktivera skapandet av en Git-lagringsplats för det här exempelprojektet.Disable the creation of a Git repo for this example project.
  3. Ange rättigheter för nätverks-och mikrofon åtkomst.Set the entitlements for network and microphone access. Klicka på namnet på appen i den första raden i översikten till vänster för att komma till appens konfiguration och välj sedan fliken funktioner.Click the app name in the first line in the overview on the left to get to the app configuration, and then choose the "Capabilities" tab.
    1. Aktivera inställningen "app Sandbox" för appen.Enable the "App sandbox" setting for the app.
    2. Aktivera kryss rutorna för åtkomst till "utgående anslutningar" och "mikrofon".Enable the checkboxes for "Outgoing Connections" and "Microphone" access. ![Sandbox inställningar @ no__t-1Sandbox Settings
  4. Appen måste också deklarera användningen av mikrofonen i Info.plist-filen.The app also needs to declare use of the microphone in the Info.plist file. Klicka på filen i översikten och Lägg till nyckeln "sekretess-mikrofon användning Beskrivning" med ett värde som "mikrofon krävs för tal igenkänning".Click on the file in the overview, and add the "Privacy - Microphone Usage Description" key, with a value like "Microphone is needed for speech recognition". ![Settings i info. plist @ no__t-1Settings in Info.plist
  5. Stäng Xcode-projektet.Close the Xcode project. Du kommer att använda en annan instans av det senare när du har konfigurerat CocoaPods.You will use a different instance of it later after setting up the CocoaPods.

Lägga till exempelkodenAdd the sample code

  1. Placera en ny rubrik fil med namnet MicrosoftCognitiveServicesSpeech-Bridging-Header.h i katalogen helloworld i projektet HelloWorld och klistra in följande kod i den:Place a new header file with the name MicrosoftCognitiveServicesSpeech-Bridging-Header.h into the helloworld directory inside the helloworld project, and paste the following code into it:

    #ifndef MicrosoftCognitiveServicesSpeech_Bridging_Header_h
    #define MicrosoftCognitiveServicesSpeech_Bridging_Header_h
    
    #import <MicrosoftCognitiveServicesSpeech/SPXSpeechAPI.h>
    
    #endif /* MicrosoftCognitiveServicesSpeech_Bridging_Header_h */
    
  2. Lägg till den relativa sökvägen helloworld/MicrosoftCognitiveServicesSpeech-Bridging-Header.h till bryggnings huvudet till SWIFT-projektets inställningar för HelloWorld-målet i mål-C-bryggnings huvud fältet ![Header egenskaper @ no__t-3Add the relative path helloworld/MicrosoftCognitiveServicesSpeech-Bridging-Header.h to the bridging header to the Swift project settings for the helloworld target in the Objective-C Bridging Header field Header properties

  3. Ersätt innehållet i den automatiskt genererade AppDelegate.swift-filen genom att göra följande:Replace the contents of the autogenerated AppDelegate.swift file by:

    import Cocoa
    
    @NSApplicationMain
    class AppDelegate: NSObject, NSApplicationDelegate {
        var label: NSTextField!
        var fromMicButton: NSButton!
    
        var sub: String!
        var region: String!
    
        @IBOutlet weak var window: NSWindow!
    
        func applicationDidFinishLaunching(_ aNotification: Notification) {
            print("loading")
            // load subscription information
            sub = "YourSubscriptionKey"
            region = "YourServiceRegion"
    
            label = NSTextField(frame: NSRect(x: 100, y: 50, width: 200, height: 200))
            label.textColor = NSColor.black
            label.lineBreakMode = .byWordWrapping
    
            label.stringValue = "Recognition Result"
            label.isEditable = false
    
            self.window.contentView?.addSubview(label)
    
            fromMicButton = NSButton(frame: NSRect(x: 100, y: 300, width: 200, height: 30))
            fromMicButton.title = "Recognize"
            fromMicButton.target = self
            fromMicButton.action = #selector(fromMicButtonClicked)
            self.window.contentView?.addSubview(fromMicButton)
        }
    
        @objc func fromMicButtonClicked() {
            DispatchQueue.global(qos: .userInitiated).async {
                self.recognizeFromMic()
            }
        }
    
        func recognizeFromMic() {
            var speechConfig: SPXSpeechConfiguration?
            do {
                try speechConfig = SPXSpeechConfiguration(subscription: sub, region: region)
            } catch {
                print("error \(error) happened")
                speechConfig = nil
            }
            speechConfig?.speechRecognitionLanguage = "en-US"
            let audioConfig = SPXAudioConfiguration()
    
            let reco = try! SPXSpeechRecognizer(speechConfiguration: speechConfig!, audioConfiguration: audioConfig)
    
            reco.addRecognizingEventHandler() {reco, evt in
                print("intermediate recognition result: \(evt.result.text ?? "(no result)")")
                self.updateLabel(text: evt.result.text, color: .gray)
            }
    
            updateLabel(text: "Listening ...", color: .gray)
            print("Listening...")
    
            let result = try! reco.recognizeOnce()
            print("recognition result: \(result.text ?? "(no result)"), reason: \(result.reason.rawValue)")
            updateLabel(text: result.text, color: .black)
    
            if result.reason != SPXResultReason.recognizedSpeech {
                let cancellationDetails = try! SPXCancellationDetails(fromCanceledRecognitionResult: result)
                print("cancelled: \(result.reason), \(cancellationDetails.errorDetails)")
                updateLabel(text: "Error: \(cancellationDetails.errorDetails)", color: .red)
            }
        }
    
        func updateLabel(text: String?, color: NSColor) {
            DispatchQueue.main.async {
                self.label.stringValue = text!
                self.label.textColor = color
            }
        }
    }
    
  4. Ersätt strängen YourSubscriptionKey med din prenumerations nyckel i AppDelegate.swift.In AppDelegate.swift, replace the string YourSubscriptionKey with your subscription key.

  5. Ersätt strängen YourServiceRegion med den region som är kopplad till din prenumeration (till exempel westus för den kostnads fria utvärderings prenumerationen).Replace the string YourServiceRegion with the region associated with your subscription (for example, westus for the free trial subscription).

Installera SDK som en CocoaPodInstall the SDK as a CocoaPod

  1. Installera CocoaPod-beroende hanteraren enligt beskrivningen i installations anvisningarna.Install the CocoaPod dependency manager as described in its installation instructions.

  2. Navigera till katalogen för din exempel App (helloworld).Navigate to the directory of your sample app (helloworld). Placera en textfil med namnet Podfile och följande innehåll i den katalogen:Place a text file with the name Podfile and the following content in that directory:

    target 'helloworld' do
        platform :osx, 10.14
        pod 'MicrosoftCognitiveServicesSpeech-macOS', '~> 1.6'
        use_frameworks!
    end
    
  3. Gå till katalogen helloworld i en Terminal och kör kommandot pod install.Navigate to the helloworld directory in a terminal and run the command pod install. Detta genererar en helloworld.xcworkspace Xcode-arbetsyta som innehåller både exempel programmet och tal-SDK som ett beroende.This will generate a helloworld.xcworkspace Xcode workspace containing both the sample app and the Speech SDK as a dependency. Den här arbets ytan kommer att användas i följande.This workspace will be used in the following.

Skapa och köra exempelappenBuild and run the sample

  1. Öppna arbets ytan helloworld.xcworkspace i Xcode.Open the helloworld.xcworkspace workspace in Xcode.
  2. Gör felsökningsresultatet synligt (View > Debug Area > Activate Console) (Visa > Felsökningsområde > Aktivera konsol).Make the debug output visible (View > Debug Area > Activate Console).
  3. Skapa och kör exempel koden genom att välja produkt > Kör på menyn eller genom att klicka på uppspelnings knappen.Build and run the example code by selecting Product > Run from the menu or clicking the Play button.
  4. När du klickar på knappen "identifiera" i appen och säger några ord bör du se texten du har talat i den nedre delen av app-fönstret.After you click the "Recognize" button in the app and say a few words, you should see the text you have spoken in the lower part of the app window.

Nästa stegNext steps