Menggunakan Speech-to-Text API dengan C#

1. Ringkasan

Dengan Google Cloud Speech-to-Text API, developer dapat mengonversi audio menjadi teks dalam 120 bahasa dan varian, dengan menerapkan model jaringan neural yang canggih di API yang mudah digunakan.

Dalam codelab ini, Anda akan berfokus pada penggunaan Speech-to-Text API dengan C#. Anda akan mempelajari cara mengirim file audio dalam bahasa Inggris dan bahasa lainnya ke Cloud Speech-to-Text API untuk dibuat transkripsinya.

Yang akan Anda pelajari

  • Cara menggunakan Cloud Shell
  • Cara mengaktifkan Speech-to-Text API
  • Cara Mengautentikasi permintaan API
  • Cara menginstal library klien Google Cloud untuk C#
  • Cara mentranskripsikan file audio dalam bahasa Inggris
  • Cara mentranskripsikan file audio dengan stempel waktu kata
  • Cara mentranskripsikan file audio dalam berbagai bahasa

Yang Anda butuhkan

  • Project Google Cloud Platform
  • Browser, seperti Chrome atau Firefox
  • Pemahaman dalam menggunakan C#

Survei

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membacanya dan menyelesaikan latihan

Bagaimana Anda menilai pengalaman Anda dengan C#?

Pemula Menengah Mahir

Bagaimana penilaian Anda terhadap pengalaman menggunakan layanan Google Cloud Platform?

Pemula Menengah Mahir

2. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

295004821bab6a87.pngS

37d264871000675d.png

96d86d3d5655cdbe.pngS

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Mengaktifkan Cloud Shell

  1. Dari Cloud Console, klik Aktifkan Cloud Shell d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Jika ini pertama kalinya Anda memulai Cloud Shell, Anda akan melihat layar perantara yang menjelaskan apa itu Cloud Shell. Jika Anda melihat layar perantara, klik Lanjutkan.

d95252b003979716.png

Perlu waktu beberapa saat untuk penyediaan dan terhubung ke Cloud Shell.

7833d5e1c5d18f54.pngS

Mesin virtual ini dimuat dengan semua alat pengembangan yang dibutuhkan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Sebagian besar pekerjaan Anda dalam codelab ini dapat dilakukan dengan browser.

Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda telah diautentikasi dan project sudah ditetapkan ke project ID Anda.

  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa Anda telah diautentikasi:
gcloud auth list

Output perintah

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda:
gcloud config list project

Output perintah

[core]
project = <PROJECT_ID>

Jika tidak, Anda dapat menyetelnya dengan perintah ini:

gcloud config set project <PROJECT_ID>

Output perintah

Updated property [core/project].

3. Mengaktifkan Speech-to-Text API

Sebelum dapat mulai menggunakan Speech-to-Text API, Anda harus mengaktifkan API tersebut. Anda dapat mengaktifkan API menggunakan perintah berikut di Cloud Shell:

gcloud services enable speech.googleapis.com

4. Instal library klien Google Cloud Speech-to-Text API untuk C#

Pertama, buat aplikasi konsol C# sederhana yang akan Anda gunakan untuk menjalankan contoh Speech-to-Text API:

dotnet new console -n SpeechToTextApiDemo

Anda akan melihat aplikasi yang dibuat dan dependensi di-resolve:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

Selanjutnya, buka folder SpeechToTextApiDemo:

cd SpeechToTextApiDemo/

Dan tambahkan paket NuGet Google.Cloud.Speech.V1 ke project:

dotnet add package Google.Cloud.Speech.V1
info : Adding PackageReference for package 'Google.Cloud.Speech.V1' into project '/home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj'.
log  : Restoring packages for /home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Speech.V1' version '1.0.1' added to file '/home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj'.

Sekarang, Anda siap untuk menggunakan Speech-to-Text API.

5. Mentranskripsikan File Audio

Di bagian ini, Anda akan mentranskripsikan file audio yang telah direkam sebelumnya dalam bahasa Inggris. File audio tersedia di Google Cloud Storage.

Untuk mentranskripsikan file audio, buka editor kode dari sisi kanan atas Cloud Shell:

fd3fc1303e63572.png

Buka file Program.cs di dalam folder SpeechToTextApiDemo dan ganti kode dengan kode berikut:

using Google.Cloud.Speech.V1;
using System;

namespace SpeechToTextApiDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var speech = SpeechClient.Create();
            var config = new RecognitionConfig
            {
                Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
                SampleRateHertz = 16000,
                LanguageCode = LanguageCodes.English.UnitedStates
            };
            var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-tests/speech/brooklyn.flac");         
            
            var response = speech.Recognize(config, audio);

            foreach (var result in response.Results)
            {
                foreach (var alternative in result.Alternatives)
                {
                    Console.WriteLine(alternative.Transcript);
                }
            }
        }
    }
}

Luangkan waktu satu atau dua menit untuk mempelajari kode dan lihat bahwa kode digunakan untuk mentranskripsikan file audio*.*

Parameter Encoding memberi tahu API jenis encoding audio yang Anda gunakan untuk file audio. Flac adalah jenis encoding untuk file .raw (lihat dokumen untuk mengetahui detail selengkapnya).

Pada objek RecognitionAudio, Anda dapat meneruskan API dengan uri file audio di Cloud Storage atau jalur file lokal untuk file audio. Di sini, kita menggunakan URI Cloud Storage.

Kembali ke Cloud Shell, jalankan aplikasi:

dotnet run

Anda akan melihat output berikut:

how old is the Brooklyn Bridge

Ringkasan

Pada langkah ini, Anda dapat mentranskripsikan file audio dalam bahasa Inggris dan mencetak hasilnya. Baca selengkapnya tentang Mentranskripsikan.

6. Transkripsikan dengan stempel waktu kata

Speech-to-Text dapat mendeteksi offset waktu (stempel waktu) untuk audio yang ditranskripsi. Offset waktu menampilkan awal dan akhir setiap kata yang diucapkan dalam audio yang disediakan. Nilai selisih waktu menunjukkan jumlah waktu yang telah berlalu dari awal audio, dengan kelipatan 100 md.

Untuk mentranskripsikan file audio dengan offset waktu, buka file Program.cs di dalam folder SpeechToTextApiDemo dan ganti kode dengan kode berikut:

using Google.Cloud.Speech.V1;
using System;

namespace SpeechToTextApiDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var speech = SpeechClient.Create();
            var config = new RecognitionConfig
            {
                Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
                SampleRateHertz = 16000,
                LanguageCode = LanguageCodes.English.UnitedStates,
                EnableWordTimeOffsets = true
            };
            var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-tests/speech/brooklyn.flac");
     
            var response = speech.Recognize(config, audio);

            foreach (var result in response.Results)
            {
                foreach (var alternative in result.Alternatives)
                {
                    Console.WriteLine($"Transcript: { alternative.Transcript}");
                    Console.WriteLine("Word details:");
                    Console.WriteLine($" Word count:{alternative.Words.Count}");
                    foreach (var item in alternative.Words)
                    {
                        Console.WriteLine($"  {item.Word}");
                        Console.WriteLine($"    WordStartTime: {item.StartTime}");
                        Console.WriteLine($"    WordEndTime: {item.EndTime}");
                    }
                }
            }
        }
    }
}

Luangkan waktu satu atau dua menit untuk mempelajari kode dan lihat bahwa kode digunakan untuk mentranskripsikan file audio dengan stempel waktu kata*.* Parameter EnableWordTimeOffsets memberi tahu API untuk mengaktifkan offset waktu (lihat dokumen untuk detail selengkapnya).

Kembali ke Cloud Shell, jalankan aplikasi:

dotnet run

Anda akan melihat output berikut:

dotnet run

Transcript: how old is the Brooklyn Bridge
Word details:
 Word count:6
  how
    WordStartTime: "0s"
    WordEndTime: "0.300s"
  old
    WordStartTime: "0.300s"
    WordEndTime: "0.600s"
  is
    WordStartTime: "0.600s"
    WordEndTime: "0.800s"
  the
    WordStartTime: "0.800s"
    WordEndTime: "0.900s"
  Brooklyn
    WordStartTime: "0.900s"
    WordEndTime: "1.100s"
  Bridge
    WordStartTime: "1.100s"
    WordEndTime: "1.500s"

Ringkasan

Pada langkah ini, Anda dapat mentranskripsikan file audio dalam bahasa Inggris dengan stempel waktu kata dan mencetak hasilnya. Baca selengkapnya tentang Mentranskripsikan dengan offset kata.

7. Transkripsikan berbagai bahasa

Speech-to-Text API mendukung transkripsi ke dalam lebih dari 100 bahasa. Anda dapat menemukan daftar bahasa yang didukung di sini.

Di bagian ini, Anda akan mentranskripsikan file audio yang telah direkam sebelumnya dalam bahasa Prancis. File audio tersedia di Google Cloud Storage.

Untuk mentranskripsikan file audio bahasa Prancis, buka file Program.cs di dalam folder SpeechToTextApiDemo dan ganti kode dengan kode berikut:

using Google.Cloud.Speech.V1;
using System;

namespace SpeechToTextApiDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var speech = SpeechClient.Create();
            var config = new RecognitionConfig
            {
                Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
                LanguageCode = LanguageCodes.French.France
            };
            var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-data/speech/corbeau_renard.flac");

            var response = speech.Recognize(config, audio);

            foreach (var result in response.Results)
            {
                foreach (var alternative in result.Alternatives)
                {
                    Console.WriteLine(alternative.Transcript);
                }
            }
        }
    }
}

Luangkan waktu satu atau dua menit untuk mempelajari kode tersebut dan lihat cara penggunaannya untuk mentranskripsikan file audio*.* Parameter LanguageCode memberi tahu API tentang bahasa yang digunakan dalam rekaman audio.

Kembali ke Cloud Shell, jalankan aplikasi:

dotnet run

Anda akan melihat output berikut:

maître corbeau sur un arbre perché tenait en son bec un fromage

Ini adalah kalimat dari dongeng anak-anak Prancis populer.

Ringkasan

Pada langkah ini, Anda dapat mentranskripsikan file audio dalam bahasa Prancis dan mencetak hasilnya. Baca selengkapnya tentang bahasa yang didukung.

8. Selamat!

Anda telah mempelajari cara menggunakan Speech-to-Text API menggunakan C# untuk melakukan berbagai jenis transkripsi pada file audio.

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Platform Anda untuk resource yang digunakan di panduan memulai ini:

  • Buka Cloud Platform Console.
  • Pilih project yang ingin dinonaktifkan, lalu klik 'Delete' di bagian atas: tindakan ini menjadwalkan penghapusan project.

Pelajari Lebih Lanjut

Lisensi

Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.