Trascrizione della voce in testo utilizzando le librerie client

Questa pagina mostra come inviare una richiesta di riconoscimento vocale a Speech-to-Text nel tuo linguaggio di programmazione preferito utilizzando le librerie client di Google Cloud.

Speech-to-Text consente l'integrazione semplice delle tecnologie di riconoscimento vocale di Google nelle applicazioni degli sviluppatori. Puoi inviare dati audio all'API Speech-to-Text, che restituisce una trascrizione del testo del file audio. Per maggiori informazioni sul servizio, consulta Nozioni di base su Speech-to-Text.

Prima di iniziare

Prima di poter inviare una richiesta all'API Speech-to-Text, devi aver completato le seguenti azioni. Per informazioni dettagliate, consulta la pagina Prima di iniziare.

  • Abilitare Speech-to-Text in un progetto Google Cloud.
  • Assicurati che la fatturazione sia abilitata per Speech-to-Text.
  • Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

    gcloud init
  • Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login
  • (Facoltativo) Crea un nuovo bucket Google Cloud Storage per archiviare i dati audio.

installa la libreria client

Go

go get cloud.google.com/go/speech/apiv1

Java

Se utilizzi Maven, aggiungi quanto segue al tuo file pom.xml. Per ulteriori informazioni sulle BOM, consulta BOM delle librerie di Google Cloud.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>26.37.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-speech</artifactId>
  </dependency>

Se utilizzi Gradle, aggiungi quanto segue alle dipendenze:

implementation 'com.google.cloud:google-cloud-speech:4.36.0'

Se utilizzi sbt, aggiungi quanto segue alle dipendenze:

libraryDependencies += "com.google.cloud" % "google-cloud-speech" % "4.36.0"

Se usi Visual Studio Code, IntelliJ o Eclipse, puoi aggiungere librerie client al progetto utilizzando i seguenti plug-in IDE:

I plug-in forniscono funzionalità aggiuntive, come la gestione delle chiavi per gli account di servizio. Per informazioni dettagliate, consulta la documentazione di ciascun plug-in.

Node.js

Prima di installare la libreria, assicurati di aver preparato l'ambiente per lo sviluppo in Node.js.

npm install --save @google-cloud/speech

Python

Prima di installare la libreria, assicurati di aver preparato l'ambiente per lo sviluppo in Python.

pip install --upgrade google-cloud-speech

Esecuzione di una richiesta di trascrizione audio

Ora puoi usare Speech-to-Text per trascrivere un file audio in testo. Utilizza il codice seguente per inviare una richiesta recognize all'API Speech-to-Text.

Go


// Sample speech-quickstart uses the Google Cloud Speech API to transcribe
// audio.
package main

import (
	"context"
	"fmt"
	"log"

	speech "cloud.google.com/go/speech/apiv1"
	"cloud.google.com/go/speech/apiv1/speechpb"
)

func main() {
	ctx := context.Background()

	// Creates a client.
	client, err := speech.NewClient(ctx)
	if err != nil {
		log.Fatalf("Failed to create client: %v", err)
	}
	defer client.Close()

	// The path to the remote audio file to transcribe.
	fileURI := "gs://cloud-samples-data/speech/brooklyn_bridge.raw"

	// Detects speech in the audio file.
	resp, err := client.Recognize(ctx, &speechpb.RecognizeRequest{
		Config: &speechpb.RecognitionConfig{
			Encoding:        speechpb.RecognitionConfig_LINEAR16,
			SampleRateHertz: 16000,
			LanguageCode:    "en-US",
		},
		Audio: &speechpb.RecognitionAudio{
			AudioSource: &speechpb.RecognitionAudio_Uri{Uri: fileURI},
		},
	})
	if err != nil {
		log.Fatalf("failed to recognize: %v", err)
	}

	// Prints the results.
	for _, result := range resp.Results {
		for _, alt := range result.Alternatives {
			fmt.Printf("\"%v\" (confidence=%3f)\n", alt.Transcript, alt.Confidence)
		}
	}
}

Java

// Imports the Google Cloud client library
import com.google.cloud.speech.v1.RecognitionAudio;
import com.google.cloud.speech.v1.RecognitionConfig;
import com.google.cloud.speech.v1.RecognitionConfig.AudioEncoding;
import com.google.cloud.speech.v1.RecognizeResponse;
import com.google.cloud.speech.v1.SpeechClient;
import com.google.cloud.speech.v1.SpeechRecognitionAlternative;
import com.google.cloud.speech.v1.SpeechRecognitionResult;
import java.util.List;

public class QuickstartSample {

  /** Demonstrates using the Speech API to transcribe an audio file. */
  public static void main(String... args) throws Exception {
    // Instantiates a client
    try (SpeechClient speechClient = SpeechClient.create()) {

      // The path to the audio file to transcribe
      String gcsUri = "gs://cloud-samples-data/speech/brooklyn_bridge.raw";

      // Builds the sync recognize request
      RecognitionConfig config =
          RecognitionConfig.newBuilder()
              .setEncoding(AudioEncoding.LINEAR16)
              .setSampleRateHertz(16000)
              .setLanguageCode("en-US")
              .build();
      RecognitionAudio audio = RecognitionAudio.newBuilder().setUri(gcsUri).build();

      // Performs speech recognition on the audio file
      RecognizeResponse response = speechClient.recognize(config, audio);
      List<SpeechRecognitionResult> results = response.getResultsList();

      for (SpeechRecognitionResult result : results) {
        // There can be several alternative transcripts for a given chunk of speech. Just use the
        // first (most likely) one here.
        SpeechRecognitionAlternative alternative = result.getAlternativesList().get(0);
        System.out.printf("Transcription: %s%n", alternative.getTranscript());
      }
    }
  }
}

Node.js

Prima di eseguire l'esempio, assicurati di aver preparato l'ambiente per lo sviluppo in Node.js.

// Imports the Google Cloud client library
const speech = require('@google-cloud/speech');

// Creates a client
const client = new speech.SpeechClient();

async function quickstart() {
  // The path to the remote LINEAR16 file
  const gcsUri = 'gs://cloud-samples-data/speech/brooklyn_bridge.raw';

  // The audio file's encoding, sample rate in hertz, and BCP-47 language code
  const audio = {
    uri: gcsUri,
  };
  const config = {
    encoding: 'LINEAR16',
    sampleRateHertz: 16000,
    languageCode: 'en-US',
  };
  const request = {
    audio: audio,
    config: config,
  };

  // Detects speech in the audio file
  const [response] = await client.recognize(request);
  const transcription = response.results
    .map(result => result.alternatives[0].transcript)
    .join('\n');
  console.log(`Transcription: ${transcription}`);
}
quickstart();

Python

Prima di eseguire l'esempio, assicurati di aver preparato l'ambiente per lo sviluppo in Python.


# Imports the Google Cloud client library

from google.cloud import speech

def run_quickstart() -> speech.RecognizeResponse:
    # Instantiates a client
    client = speech.SpeechClient()

    # The name of the audio file to transcribe
    gcs_uri = "gs://cloud-samples-data/speech/brooklyn_bridge.raw"

    audio = speech.RecognitionAudio(uri=gcs_uri)

    config = speech.RecognitionConfig(
        encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=16000,
        language_code="en-US",
    )

    # Detects speech in the audio file
    response = client.recognize(config=config, audio=audio)

    for result in response.results:
        print(f"Transcript: {result.alternatives[0].transcript}")

Complimenti! Hai inviato la tua prima richiesta a Speech-to-Text.

Se ricevi un errore o una risposta vuota da Speech-to-Text, dai un'occhiata ai passaggi per la risoluzione dei problemi e la mitigazione degli errori.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi:

Passaggi successivi