Speech-to-Text クライアント ライブラリ

}

このページでは、Speech-to-Text API の Cloud クライアント ライブラリの利用方法を説明します。以前の Google API のクライアント ライブラリを含め、Cloud APIs のライブラリの詳細については、クライアント ライブラリの説明をご覧ください。

クライアント ライブラリのインストール

C#

詳細については、C# 開発環境の設定をご覧ください。

Visual Studio 2017 以降を使用している場合は、Nuget パッケージ マネージャーのウィンドウを開き、次のように入力します。

Install-Package Google.Apis

.NET Core コマンドライン インターフェースを使用して依存関係をインストールしている場合は、次のコマンドを実行します。

dotnet add package Google.Apis

Go

詳細については、Go 開発環境の設定をご覧ください。

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

Java

詳細については、Java 開発環境の設定をご覧ください。

Maven を使用している場合は、次のものを pom.xml ファイルに追加します。BOM の詳細については、Google Cloud Platform ライブラリ BOM をご覧ください。

<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>

Gradle を使用している場合は、次のものを依存関係に追加します。

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

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

sbt を使用している場合は、次のものを依存関係に追加します。

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

Visual Studio Code、IntelliJ または Eclipse を使用している場合は、次の IDE プラグインでプロジェクトにクライアント ライブラリを追加できます。

プラグインでは、サービス アカウントのキー管理などの追加機能も提供されます。詳細は各プラグインのドキュメントをご覧ください。

Node.js

詳細については、Node.js 開発環境の設定をご覧ください。

npm install --save @google-cloud/speech

PHP

詳細については、Google Cloud での PHP の使用をご覧ください。

composer require google/apiclient

Python

詳細については、Python 開発環境の設定をご覧ください。

pip install --upgrade google-cloud-speech

Ruby

詳細については、Ruby 開発環境の設定をご覧ください。

gem install google-api-client

認証の設定

クライアント ライブラリを実行するには、まず認証を設定する必要があります。これを行う 1 つの方法は、次のようにサービス アカウントを作成して環境変数を設定することです。その他の認証方法については、サービス アカウントとして認証するをご覧ください。

Console

サービス アカウントを作成します。

  1. コンソールで [サービス アカウントの作成] ページに移動します。

    [サービス アカウントの作成] に移動
  2. プロジェクトを選択します。
  3. [サービス アカウント名] フィールドに名前を入力します。この名前に基づいて [サービス アカウント ID] フィールドに値が入力されます。

    [サービス アカウントの説明] フィールドに説明を入力します。例: Service account for quickstart

  4. [作成して続行] をクリックします。
  5. プロジェクトへのアクセス権限を付与するには、サービス アカウントに次のロールを付与します。[プロジェクト] > [オーナー]

    [ロールを選択] リストでロールを選択します。

    ロールを追加するには、[別のロールを追加] をクリックして各ロールを追加します。

  6. [続行] をクリックします。
  7. [完了] をクリックして、サービス アカウントの作成を完了します。

    ブラウザ ウィンドウは閉じないでください。次のステップでこれを使用します。

サービス アカウント キーを作成します。

  1. コンソールで、作成したサービス アカウントのメールアドレスをクリックします。
  2. [キー] をクリックします。
  3. [鍵を追加]、[新しい鍵を作成] の順にクリックします。
  4. [作成] をクリックします。JSON キーファイルがパソコンにダウンロードされます。
  5. [閉じる] をクリックします。

gcloud

認証を設定します。

  1. サービス アカウントを作成します。

    gcloud iam service-accounts create NAME

    NAME をサービス アカウントの名前に置き換えます。

  2. サービス アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。roles/owner

    gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

    次のように置き換えます。

    • SERVICE_ACCOUNT_NAME: サービス アカウントの名前
    • PROJECT_ID: サービス アカウントを作成したプロジェクト ID
    • ROLE: 付与するロール
  3. 鍵ファイルを生成します。

    gcloud iam service-accounts keys create FILE_NAME.json --iam-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

    次のように置き換えます。

    • FILE_NAME: 鍵ファイルの名前
    • SERVICE_ACCOUNT_NAME: サービス アカウントの名前
    • PROJECT_ID: サービス アカウントを作成したプロジェクト ID

環境変数 GOOGLE_APPLICATION_CREDENTIALS を設定して、アプリケーション コードに認証情報を指定します。この変数は、現在のシェル セッションにのみ適用されます。この変数を新しいシェル セッションに適用する場合は、シェル起動ファイル(~/.bashrc ファイルや ~/.profile ファイルなど)で変数を設定します。

Linux または macOS

export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

KEY_PATH をサービス アカウント キーが含まれる JSON ファイルのパスに置き換えます。

例:

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

Windows

PowerShell の場合:

$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

KEY_PATH をサービス アカウント キーが含まれる JSON ファイルのパスに置き換えます。

例:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

コマンド プロンプトの場合:

set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH

KEY_PATH をサービス アカウント キーが含まれる JSON ファイルのパスに置き換えます。

クライアント ライブラリの使用

次の例は、クライアント ライブラリの使用方法を示しています。

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

// 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


# 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))

補足資料