Buat audio dari teks menggunakan command line

Dokumen ini akan memandu Anda melalui proses permintaan ke Text-to-Speech menggunakan command line. Untuk mempelajari selengkapnya tentang konsep dasar dalam Text-to-Speech, baca Dasar-Dasar Text-to-Speech.

Sebelum memulai

Sebelum dapat mengirim permintaan ke Text-to-Speech API, Anda harus sudah menyelesaikan tindakan berikut. Lihat halaman sebelum memulai untuk mengetahui detailnya.

  • Aktifkan Text-to-Speech di project GCP.
  • Pastikan penagihan diaktifkan untuk Text-to-Speech.
  • Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

    gcloud init

Sintesis audio dari teks

Anda dapat mengonversi teks menjadi audio dengan membuat permintaan HTTP POST ke endpoint https://texttospeech.googleapis.com/v1/text:synthesize. Dalam isi perintah POST, tentukan jenis suara yang akan disintesis di bagian konfigurasi, voice tentukan teks yang akan disintesis di kolom text dari input lalu tentukan jenis audio yang akan dibuat di bagian audioConfig.

  1. Jalankan permintaan REST di bawah ini pada command line untuk melakukan sintesis pada audio dari teks menggunakan Text-to-Speech. Perintah tersebut menggunakan perintah gcloud auth application-default print-access-token untuk mengambil token otorisasi untuk permintaan tersebut.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID alfanumerik project Google Cloud Anda.

    Metode HTTP dan URL:

    POST https://texttospeech.googleapis.com/v1/text:synthesize

    Meminta isi JSON:

    {
      "input": {
        "text": "Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets."
      },
      "voice": {
        "languageCode": "en-gb",
        "name": "en-GB-Standard-A",
        "ssmlGender": "FEMALE"
      },
      "audioConfig": {
        "audioEncoding": "MP3"
      }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan berikut ini:

    {
      "audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.."
    }
    

  2. Output JSON untuk perintah REST berisi audio yang disintesis dalam format yang dienkode base64. Salin konten kolom audioContent ke file baru bernama synthesize-output-base64.txt. File baru Anda akan terlihat seperti berikut:

    //NExAARqoIIAAhEuWAAAGNmBGMY4EBcxvABAXBPmPIAF//yAuh9Tn5CEap3/o
    ...
    VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
    
  3. Dekode konten file synthesize-output-base64.txt menjadi file baru bernama synthesized-audio.mp3. Untuk mengetahui informasi tentang mendekode base64, lihat Mendekode Konten Audio yang Dienkode Base64.

    Linux

    1. Hanya salin konten berenkode base-64 ke dalam file teks.

    2. Dekode file teks sumber menggunakan alat command line base64 menggunakan flag -d:

        $ base64 SOURCE_BASE64_TEXT_FILE -d > DESTINATION_AUDIO_FILE
    

    Mac OSX

    1. Hanya salin konten berenkode base-64 ke dalam file teks.

    2. Dekode file teks sumber menggunakan alat command line base64:

        $ base64 --decode SOURCE_BASE64_TEXT_FILE > DESTINATION_AUDIO_FILE
    

    Windows

    1. Hanya salin konten berenkode base-64 ke dalam file teks.

    2. Dekode file teks sumber menggunakan perintah certutil.

       certutil -decode SOURCE_BASE64_TEXT_FILE DESTINATION_AUDIO_FILE
    
  4. Memutar konten synthesized-audio.mp3 dalam aplikasi audio atau di perangkat audio. Anda juga dapat membuka synthesized-audio.mp3 di browser Chrome untuk memutar audio dengan membuka folder yang berisi file tersebut, misalnya file://my_file_path/synthesized-audio.mp3

Pembersihan

Untuk menghindari tagihan Google Cloud Platform yang tidak diperlukan, gunakan konsol Google Cloud untuk menghapus project jika Anda tidak membutuhkannya.

Langkah selanjutnya

  • Pelajari Cloud Text-to-Speech lebih lanjut dengan membaca dasar-dasarnya.
  • Tinjau daftar suara yang tersedia yang dapat Anda gunakan untuk ucapan sintetis.