Guida rapida: trascrivi un discorso al testo utilizzando le librerie client

Trascrivi 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 per sviluppatori. Puoi inviare dati audio all'API Speech-to-Text, che restituisce una trascrizione del testo di tale file audio. Per ulteriori informazioni sul servizio, consulta le nozioni di base di Speech-to-Text.

Prima di iniziare

Prima di poter inviare una richiesta all'API Speech-to-Text, devi aver completato le seguenti azioni. Consulta la pagina prima di iniziare per maggiori dettagli.

  • Abilita Speech-to-Text su un progetto GCP.
    1. Assicurati che la fatturazione sia attivata per Speech-to-Text.
    2. Crea e/o assegna uno o più account di servizio a Speech-to-Text.
    3. Scarica una chiave delle credenziali dell'account di servizio.
  • Imposta la variabile di ambiente di autenticazione.
  • (Facoltativo) Crea un nuovo bucket Google Cloud Storage per archiviare i tuoi dati audio.

Installa la libreria client

Vai

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

Java

Se utilizzi Maven, aggiungi quanto segue al file pom.xml. Per ulteriori informazioni sui BOM, consulta la pagina BOM delle librerie Google Cloud Platform.

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

<dependencies>
  <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20220320</version>
  </dependency>
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-speech</artifactId>
  </dependency>
</dependencies>

Se utilizzi Gradle, aggiungi quanto segue alle dipendenze:

implementation platform('com.google.cloud:libraries-bom:26.0.0')

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

Se utilizzi sbt, aggiungi quanto segue alle dipendenze:

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

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

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

Node.js

Prima di installare la libreria, assicurati di aver preparato il tuo ambiente per lo sviluppo di Node.js.

npm install --save @google-cloud/speech

Python

Prima di installare la libreria, assicurati di aver preparato il tuo ambiente per lo sviluppo Python.

pip install --upgrade google-cloud-speech

Esecuzione di una richiesta di trascrizione di audio

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

Vai


// 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"
	speechpb "google.golang.org/genproto/googleapis/cloud/speech/v1"
)

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 il tuo ambiente per lo sviluppo di 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 il tuo ambiente per lo sviluppo Python.


# Imports the Google Cloud client library
from google.cloud import speech

# 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("Transcript: {}".format(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 di risoluzione dei problemi e attenuazione 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.

  • Utilizza la console per eliminare il progetto se non ti serve.

Passaggi successivi