Guide de démarrage rapide : transcrire la voix en texte à l'aide de bibliothèques clientes

Transcrire la voix en texte en texte à l'aide de bibliothèques clientes

Cette page explique comment envoyer une requête de reconnaissance vocale à Speech-to-Text dans votre langage de programmation favori à l'aide des bibliothèques clientes Google Cloud.

Speech-to-Text permet d'intégrer facilement les technologies de reconnaissance vocale Google aux applications en cours de développement. Vous pouvez envoyer des données audio à l'API Speech-to-Text, qui renvoie ensuite une transcription de ce fichier audio en texte. Pour plus d'informations sur le service, consultez la page Principes de base de Speech-to-Text.

Avant de commencer

Avant de pouvoir envoyer une requête à l'API Speech-to-Text, vous devez avoir effectué les actions suivantes. Pour en savoir plus, consultez la page Avant de commencer.

  • Activez Speech-to-Text sur un projet GCP.
    1. Assurez-vous que la facturation est activée pour Speech-to-Text.
    2. Créez et/ou attribuez un ou plusieurs comptes de service à Speech-to-Text.
    3. Téléchargez une clé d'identifiants de compte de service.
  • Définissez la variable d'environnement d'authentification.
  • (Facultatif) Créez un bucket Google Cloud Storage pour stocker vos données audio.

Installer la bibliothèque cliente

Go

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

Java

Si vous utilisez Maven, ajoutez les lignes suivantes à votre fichier pom.xml. Pour en savoir plus sur les BOM, consultez la page The Google Cloud Platform Libraries BOM (BOM des bibliothèques Google Cloud Platform).

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>25.2.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>

Si vous utilisez Gradle, ajoutez les éléments suivants à vos dépendances :

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

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

Si vous utilisez sbt, ajoutez les éléments suivants à vos dépendances :

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

Si vous utilisez Visual Studio Code, IntelliJ ou Eclipse, vous pouvez ajouter des bibliothèques clientes à votre projet à l'aide des plug-ins IDE suivants :

Les plug-ins offrent des fonctionnalités supplémentaires, telles que la gestion des clés pour les comptes de service. Reportez-vous à la documentation de chaque plug-in pour plus de détails.

Node.js

Avant d'installer la bibliothèque, assurez-vous d'avoir préparé votre environnement pour le développement Node.js.

npm install --save @google-cloud/speech

Python

Avant d'installer la bibliothèque, assurez-vous d'avoir préparé votre environnement pour le développement Python.

pip install --upgrade google-cloud-speech

Envoyer une requête de transcription audio

Speech-to-Text vous permet désormais de transcrire un fichier audio en texte. Servez-vous de l'exemple de code suivant pour envoyer une requête recognize à l'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"
	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

Avant d'exécuter l'exemple, assurez-vous d'avoir préparé l'environnement pour le développement 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

Avant d'exécuter l'exemple, assurez-vous d'avoir préparé l'environnement pour le développement 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))

Félicitations ! Vous venez d'envoyer votre première requête à Speech-to-Text.

Si vous recevez un message d'erreur ou une réponse vide de Speech-to-Text, reportez-vous aux procédures de dépannage et de réduction des erreurs.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, procédez comme suit :

  • Utilisez Cloud Console pour supprimer votre projet, si vous n'en avez plus besoin.

Étape suivante