Guida introduttiva: Riconoscimento vocale con Speech SDK per JavaQuickstart: Recognize speech with the Speech SDK for Java

Sono disponibili guide di avvio rapido anche per la traduzione con sintesi vocale, l'assistente virtuale voice-first e la sintesi vocale.Quickstarts are also available for speech-to-speech-translation, voice-first virtual assistant, and speech synthesis.

Se si vuole, è possibile scegliere un linguaggio di programmazione e/o un ambiente diverso:If desired, choose a different programming language and/or environment:

In questo articolo, si crea un'applicazione console Java usando Speech SDK.In this article, you create a Java console application by using the Speech SDK. Avviene la trascrizione del riconoscimento vocale in tempo reale dal microfono del PC.You transcribe speech to text in real time from your PC's microphone. L'applicazione è compilata con il pacchetto Speech SDK Maven ed Eclipse Java IDE (v4.8) in Windows a 64 bit, Linux a 64 bit (Ubuntu 16.04, Ubuntu 18.04, Debian 9) o in macOS 10.13 o versioni successive.The application is built with the Speech SDK Maven package, and the Eclipse Java IDE (v4.8) on 64-bit Windows, 64-bit Linux (Ubuntu 16.04, Ubuntu 18.04, Debian 9), or on macOS 10.13 or later. Viene eseguito su un ambiente Java 8 runtime a 64 bit (JRE).It runs on a 64-bit Java 8 runtime environment (JRE).

Nota

Per Speech Device SDK e il dispositivo Roobo, vedere Speech Devices SDK.For the Speech Devices SDK and the Roobo device, see Speech Devices SDK.

PrerequisitiPrerequisites

Questa guida introduttiva richiede:This quickstart requires:

Se si esegue Linux, assicurarsi che queste dipendenze siano installate prima di avviare Eclipse.If you're running Linux, make sure these dependencies are installed before starting Eclipse.

  • In Ubuntu:On Ubuntu:

    sudo apt-get update
    sudo apt-get install libssl1.0.0 libasound2
    
  • In Debian 9:On Debian 9:

    sudo apt-get update
    sudo apt-get install libssl1.0.2 libasound2
    

Se si esegue Windows (64 bit), assicurarsi di avere installato Microsoft Visual C++ Redistributable per la piattaforma in uso.If you're running Windows (64-bit), ensure you have installed Microsoft Visual C++ Redistributable for your platform.

Creare e configurare un progettoCreate and configure project

  1. Avviare Eclipse.Start Eclipse.

  2. Nell’utilità di avvio di Eclipse, nel campo Area di lavoro, inserire il nome di una nuova directory dell’area di lavoro.In the Eclipse Launcher, in the Workspace field, enter the name of a new workspace directory. Selezionare quindi Avvio.Then select Launch.

    Screenshot dell'utilità di avvio di Eclipse

  3. Dopo qualche istante verrà visualizzata la finestra principale dell'IDE di Eclipse.In a moment, the main window of the Eclipse IDE appears. Se è presente, chiudere la schermata iniziale.Close the Welcome screen if one is present.

  4. Dalla barra dei menu di Eclipse, creare un nuovo progetto selezionando File > Nuovo > Progetto.From the Eclipse menu bar, create a new project by choosing File > New > Project.

  5. Verrà visualizzata la finestra di dialogo Nuovo progetto .The New Project dialog box appears. Selezionare Progetto Javae selezionare Avanti.Select Java Project, and select Next.

    Screenshot della finestra di dialogo Nuovo progetto, con il progetto Java evidenziato

  6. Viene avviata la procedura guidata Nuovo progetto Java.The New Java Project wizard starts. Nel campo Nome progetto, inserire quickstart e selezionare JavaSE-1.8 come ambiente di esecuzione.In the Project name field, enter quickstart, and choose JavaSE-1.8 as the execution environment. Selezionare Fine.Select Finish.

    Screenshot della procedura guidata Nuovo progetto Java

  7. Se viene visualizzata la finestra Aprire prospettiva associata? , selezionare Apri prospettiva.If the Open Associated Perspective? window appears, select Open Perspective.

  8. In Esplora pacchetti, fare doppio clic sul progetto quickstart.In the Package explorer, right-click the quickstart project. Selezionare Configura > Converti in progetto Maven dal menu di scelta rapida.Choose Configure > Convert to Maven Project from the context menu.

    Screenshot di Esplora pacchetti

  9. Viene visualizzata la finestra Crea nuovo POM.The Create new POM window appears. Nel campo Id gruppo, inserire com.microsoft.cognitiveservices.speech.samples, e nel campo Id artefatto, inserire quickstart.In the Group Id field, enter com.microsoft.cognitiveservices.speech.samples, and in the Artifact Id field, enter quickstart. Selezionare quindi Fine.Then select Finish.

    Screenshot di Crea nuova finestra POM

  10. Aprire il file pom.xml e modificarlo.Open the pom.xml file and edit it.

    • Alla fine del file, prima del tag di chiusura </project>, creare un elemento repositories con un riferimento al repository Maven per Speech SDK, come mostrato di seguito:At the end of the file, before the closing tag </project>, create a repositories element with a reference to the Maven repository for the Speech SDK, as shown here:

      <repositories>
        <repository>
          <id>maven-cognitiveservices-speech</id>
          <name>Microsoft Cognitive Services Speech Maven Repository</name>
          <url>https://csspeechstorage.blob.core.windows.net/maven/</url>
        </repository>
      </repositories>
      
    • Aggiungere anche un elemento dependencies, con la versione 1.7.0 di Speech SDK come dipendenza:Also add a dependencies element, with the Speech SDK version 1.7.0 as a dependency:

      <dependencies>
        <dependency>
          <groupId>com.microsoft.cognitiveservices.speech</groupId>
          <artifactId>client-sdk</artifactId>
          <version>1.7.0</version>
        </dependency>
      </dependencies>
      
    • Salvare le modifiche.Save the changes.

Aggiungere il codice di esempioAdd sample code

  1. Per aggiungere una nuova classe vuota al progetto Java, selezionare File > Nuovo > Classe.To add a new empty class to your Java project, select File > New > Class.

  2. Nella finestra Nuova classe Java immettere speechsdk.quickstart nel campo Pacchetto e Main nel campo Nome .In the New Java Class window, enter speechsdk.quickstart into the Package field, and Main into the Name field.

    Screenshot della procedura guidata Nuova classe Java

  3. Sostituire tutto il codice in Main.java con il frammento di codice seguente:Replace all code in Main.java with the following snippet:

    package speechsdk.quickstart;
    
    import java.util.concurrent.Future;
    import com.microsoft.cognitiveservices.speech.*;
    
    /**
     * Quickstart: recognize speech using the Speech SDK for Java.
     */
    public class Main {
    
        /**
         * @param args Arguments are ignored in this sample.
         */
        public static void main(String[] args) {
            try {
                // Replace below with your own subscription key
                String speechSubscriptionKey = "YourSubscriptionKey";
                // Replace below with your own service region (e.g., "westus").
                String serviceRegion = "YourServiceRegion";
    
                int exitCode = 1;
                SpeechConfig config = SpeechConfig.fromSubscription(speechSubscriptionKey, serviceRegion);
                assert(config != null);
    
                SpeechRecognizer reco = new SpeechRecognizer(config);
                assert(reco != null);
    
                System.out.println("Say something...");
    
                Future<SpeechRecognitionResult> task = reco.recognizeOnceAsync();
                assert(task != null);
    
                SpeechRecognitionResult result = task.get();
                assert(result != null);
    
                if (result.getReason() == ResultReason.RecognizedSpeech) {
                    System.out.println("We recognized: " + result.getText());
                    exitCode = 0;
                }
                else if (result.getReason() == ResultReason.NoMatch) {
                    System.out.println("NOMATCH: Speech could not be recognized.");
                }
                else if (result.getReason() == ResultReason.Canceled) {
                    CancellationDetails cancellation = CancellationDetails.fromResult(result);
                    System.out.println("CANCELED: Reason=" + cancellation.getReason());
    
                    if (cancellation.getReason() == CancellationReason.Error) {
                        System.out.println("CANCELED: ErrorCode=" + cancellation.getErrorCode());
                        System.out.println("CANCELED: ErrorDetails=" + cancellation.getErrorDetails());
                        System.out.println("CANCELED: Did you update the subscription info?");
                    }
                }
    
                reco.close();
    
                System.exit(exitCode);
            } catch (Exception ex) {
                System.out.println("Unexpected exception: " + ex.getMessage());
    
                assert(false);
                System.exit(1);
            }
        }
    }
    
  4. Sostituire la stringa YourSubscriptionKey con la chiave di sottoscrizione.Replace the string YourSubscriptionKey with your subscription key.

  5. Sostituire la stringa YourServiceRegion con la regione associata alla sottoscrizione (ad esempio, westus per la sottoscrizione di valutazione gratuita).Replace the string YourServiceRegion with the region associated with your subscription (for example, westus for the free trial subscription).

  6. Salvare le modifiche apportate al progetto.Save changes to the project.

Compilare ed eseguire l'appBuild and run the app

Premere F11 o selezionare Esegui > Debug.Press F11, or select Run > Debug. I successivi 15 secondi di input vocale dal microfono verranno riconosciuti e registrati nella finestra della console.The next 15 seconds of speech input from your microphone will be recognized and logged in the console window.

Screenshot della console dopo il riconoscimento corretto

Passaggi successiviNext steps

Esempi aggiuntivi, ad esempio per eseguire il riconoscimento vocale da un file audio, sono disponibili su GitHub.Additional samples, such as how to read speech from an audio file, are available on GitHub.

Vedere ancheSee also