Mentranskripsi audio dari input streaming

Bagian ini menjelaskan cara mentranskripsi audio streaming, seperti input dari mikrofon, menjadi teks.

Pengenalan ucapan streaming memungkinkan Anda mengalirkan audio ke Speech-to-Text dan menerima hasil pengenalan ucapan streaming secara real time saat audio diproses. Lihat juga batas audio untuk permintaan pengenalan ucapan streaming. Pengenalan ucapan streaming hanya tersedia melalui gRPC.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Aktifkan API Speech-to-Text.

    Mengaktifkan API

  5. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Buka IAM
    2. Pilih project.
    3. Klik Berikan akses.
    4. Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya adalah alamat email untuk Akun Google.

    5. Di daftar Pilih peran, pilih peran.
    6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
    7. Klik Simpan.
    8. Install the Google Cloud CLI.
    9. To initialize the gcloud CLI, run the following command:

      gcloud init
    10. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

      Buka pemilih project

    11. Make sure that billing is enabled for your Google Cloud project.

    12. Aktifkan API Speech-to-Text.

      Mengaktifkan API

    13. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

      Check for the roles

      1. In the Google Cloud console, go to the IAM page.

        Go to IAM
      2. Select the project.
      3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

      4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

      Grant the roles

      1. In the Google Cloud console, go to the IAM page.

        Buka IAM
      2. Pilih project.
      3. Klik Berikan akses.
      4. Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya adalah alamat email untuk Akun Google.

      5. Di daftar Pilih peran, pilih peran.
      6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
      7. Klik Simpan.
      8. Install the Google Cloud CLI.
      9. To initialize the gcloud CLI, run the following command:

        gcloud init
      10. Library klien dapat menggunakan Kredensial Default Aplikasi untuk dengan mudah melakukan autentikasi dengan Google API dan mengirim permintaan ke API tersebut. Dengan Kredensial Default Aplikasi, Anda dapat menguji aplikasi secara lokal dan men-deploy aplikasi tanpa mengubah kode yang mendasarinya. Untuk informasi selengkapnya, lihat Lakukan autentikasi untuk menggunakan library klien.

      11. Buat kredensial autentikasi lokal untuk Akun Google Anda:

        gcloud auth application-default login

      Selain itu, pastikan Anda telah menginstal library klien.

      Menjalankan pengenalan ucapan streaming pada file lokal

      Di bawah ini adalah contoh cara menjalankan pengenalan ucapan streaming pada file audio lokal. Ada batas 25 KB untuk audio yang dikirim dalam permintaan streaming. Batas ini berlaku baik untuk permintaan StreamingRecognize awal maupun ukuran setiap pesan individual dalam streaming. Jika batas ini terlampaui, error akan muncul.

      Python

      import os
      
      from google.cloud.speech_v2 import SpeechClient
      from google.cloud.speech_v2.types import cloud_speech as cloud_speech_types
      
      PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
      
      
      def transcribe_streaming_v2(
          stream_file: str,
      ) -> cloud_speech_types.StreamingRecognizeResponse:
          """Transcribes audio from an audio file stream using Google Cloud Speech-to-Text API.
          Args:
              stream_file (str): Path to the local audio file to be transcribed.
                  Example: "resources/audio.wav"
          Returns:
              list[cloud_speech_types.StreamingRecognizeResponse]: A list of objects.
                  Each response includes the transcription results for the corresponding audio segment.
          """
          # Instantiates a client
          client = SpeechClient()
      
          # Reads a file as bytes
          with open(stream_file, "rb") as f:
              audio_content = f.read()
      
          # In practice, stream should be a generator yielding chunks of audio data
          chunk_length = len(audio_content) // 5
          stream = [
              audio_content[start : start + chunk_length]
              for start in range(0, len(audio_content), chunk_length)
          ]
          audio_requests = (
              cloud_speech_types.StreamingRecognizeRequest(audio=audio) for audio in stream
          )
      
          recognition_config = cloud_speech_types.RecognitionConfig(
              auto_decoding_config=cloud_speech_types.AutoDetectDecodingConfig(),
              language_codes=["en-US"],
              model="long",
          )
          streaming_config = cloud_speech_types.StreamingRecognitionConfig(
              config=recognition_config
          )
          config_request = cloud_speech_types.StreamingRecognizeRequest(
              recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/_",
              streaming_config=streaming_config,
          )
      
          def requests(config: cloud_speech_types.RecognitionConfig, audio: list) -> list:
              yield config
              yield from audio
      
          # Transcribes the audio into text
          responses_iterator = client.streaming_recognize(
              requests=requests(config_request, audio_requests)
          )
          responses = []
          for response in responses_iterator:
              responses.append(response)
              for result in response.results:
                  print(f"Transcript: {result.alternatives[0].transcript}")
      
          return responses
      
      

      Meskipun Anda dapat mengalirkan file audio lokal ke Speech-to-Text API, sebaiknya jalankan pengenalan audio sinkron.

      Pembersihan

      Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.

      1. Opsional: Cabut kredensial autentikasi yang Anda buat, dan hapus file kredensial lokal.

        gcloud auth application-default revoke
      2. Opsional: Cabut kredensial dari gcloud CLI.

        gcloud auth revoke

      Konsol

    14. Di konsol Google Cloud, buka halaman Manage resource.

      Buka Manage resource

    15. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
    16. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
    17. gcloud

      Menghapus project Google Cloud:

      gcloud projects delete PROJECT_ID

      Langkah berikutnya