Bayangkan seorang ahli bedah melakukan panggilan video dengan pasien di seluruh dunia tanpa perlu penerjemah manusia. Bagaimana jika startup yang masih baru dapat dengan mudah memperluas produk mereka melintasi batas dan ke pasar geografis baru dengan menawarkan dukungan dan penjualan pelanggan multibahasa yang lancar, akurat, dan semuanya tanpa memerlukan penerjemah langsung? Apa yang terjadi pada bisnis Anda ketika Anda tidak lagi terikat oleh bahasa?
Sudah umum hari ini untuk mengadakan pertemuan virtual dengan tim dan pelanggan internasional yang berbicara dalam banyak bahasa berbeda. Apakah itu rapat internal atau eksternal, makna sering hilang dalam diskusi yang rumit dan Anda mungkin menghadapi hambatan bahasa yang mencegah Anda menjadi seefektif mungkin.
Dalam posting ini, Anda akan mempelajari cara menggunakan tiga layanan AWS yang terkelola sepenuhnya (Amazon Transkripsikan, Amazon Terjemahan, dan Amazon Polly) untuk menghasilkan solusi penerjemah ucapan-ke-ucapan hampir real-time yang dapat dengan cepat menerjemahkan input suara langsung pembicara sumber ke dalam bahasa target yang diucapkan, akurat, diterjemahkan, semuanya tanpa pengalaman pembelajaran mesin (ML).
Ikhtisar solusi
Penerjemah kami terdiri dari tiga layanan AWS ML terkelola sepenuhnya yang bekerja bersama dalam satu skrip Python dengan menggunakan AWS SDK untuk Python (Boto3) untuk terjemahan teks dan bagian text-to-speech kami, dan SDK streaming asinkron untuk transkripsi input audio.
Amazon Transcribe: Streaming ucapan ke teks
Layanan pertama yang Anda gunakan di tumpukan kami adalah Amazon Transcribe, layanan ucapan-ke-teks yang terkelola sepenuhnya yang mengambil ucapan masukan dan menyalinnya ke teks. Amazon Transcribe memiliki metode penyerapan, batch, atau streaming yang fleksibel, karena menerima file audio yang disimpan atau data audio streaming. Dalam posting ini, Anda menggunakan SDK streaming Amazon Transcribe asinkron untuk Python, yang menggunakan protokol streaming HTTP/2 untuk melakukan streaming audio langsung dan menerima transkripsi langsung.
Saat kami pertama kali membuat prototipe ini, penyerapan streaming Amazon Transcribe tidak mendukung deteksi bahasa otomatis, tetapi hal ini tidak lagi berlaku mulai November 2021. Penyerapan batch dan streaming sekarang mendukung deteksi bahasa otomatis untuk semua bahasa yang didukung. Dalam posting ini, kami menunjukkan bagaimana solusi berbasis parameter melalui desain tanpa parameter multi-bahasa yang mulus dimungkinkan melalui penggunaan deteksi bahasa otomatis streaming. Setelah segmen ucapan kami yang ditranskripsi dikembalikan sebagai teks, Anda mengirim permintaan ke Amazon Translate untuk menerjemahkan dan mengembalikan hasilnya di Amazon Transcribe kami EventHandler
Metode.
Amazon Translate: API terjemahan yang tercanggih dan terkelola sepenuhnya
Berikutnya dalam tumpukan kami adalah Amazon Translate, layanan terjemahan mesin saraf yang memberikan terjemahan bahasa yang cepat, berkualitas tinggi, terjangkau, dan dapat disesuaikan. Mulai Juni 2022, Amazon Translate mendukung terjemahan dalam 75 bahasa, dengan pasangan bahasa baru dan peningkatan yang terus dilakukan. Amazon Translate menggunakan model pembelajaran mendalam yang dihosting pada arsitektur AWS Cloud yang sangat skalabel dan tangguh untuk memberikan terjemahan yang akurat dengan cepat baik secara real time atau berkelompok, tergantung pada kasus penggunaan Anda. Menggunakan Amazon Translate sangat mudah dan tidak memerlukan pengelolaan arsitektur atau keterampilan ML yang mendasarinya. Amazon Translate memiliki beberapa fitur, seperti membuat dan menggunakan a terminologi khusus untuk menangani pemetaan antara istilah khusus industri. Untuk informasi lebih lanjut tentang batas layanan Amazon Translate, lihat Pedoman dan batasan. Setelah aplikasi menerima teks terjemahan dalam bahasa target kami, aplikasi akan mengirimkan teks terjemahan ke Amazon Polly untuk pemutaran audio terjemahan segera.
Amazon Polly: API text-to-speech yang terkelola sepenuhnya
Terakhir, Anda mengirim teks terjemahan ke Amazon Polly, layanan text-to-speech yang terkelola sepenuhnya yang dapat mengirim kembali respons klip audio yang nyata untuk pemutaran streaming langsung atau berkelompok dan disimpan di Layanan Penyimpanan Sederhana Amazon (Amazon S3) untuk digunakan nanti. Anda dapat mengontrol berbagai aspek ucapan seperti pengucapan, volume, nada, kecepatan bicara, dan lainnya menggunakan standar Bahasa Markup Sintesis Pidato (SSML).
Anda dapat mensintesis ucapan untuk Amazon Polly tertentu suara saraf menggunakan gaya Newscaster untuk membuatnya terdengar seperti penyiar TV atau radio. Anda juga dapat mendeteksi saat kata atau kalimat tertentu dalam teks diucapkan berdasarkan metadata yang disertakan dalam aliran audio. Ini memungkinkan pengembang untuk menyinkronkan penyorotan grafis dan animasi, seperti gerakan bibir avatar, dengan ucapan yang disintesis.
Anda dapat mengubah pengucapan kata-kata tertentu, seperti nama perusahaan, akronim, kata asing, atau neologisme, misalnya โP!nkโ, โROTFLโ, atau โC'est la vieโ (bila diucapkan dalam bahasa non-Perancis suara), menggunakan leksikon khusus.
Tinjauan arsitektur
Diagram berikut menggambarkan arsitektur solusi kami.
Alur kerjanya adalah sebagai berikut:
- Audio diserap oleh Python SDK.
- Amazon Polly mengonversi ucapan menjadi teks, dalam 39 bahasa yang memungkinkan.
- Amazon Translate mengonversi bahasa.
- Amazon Live Transcribe mengonversi teks menjadi ucapan.
- Audio dikeluarkan ke speaker.
Prasyarat
Anda perlu menyiapkan mesin host dengan mikrofon, speaker, dan koneksi internet yang andal. Laptop modern seharusnya berfungsi dengan baik untuk ini karena tidak diperlukan perangkat keras tambahan. Selanjutnya, Anda perlu mengatur mesin dengan beberapa alat perangkat lunak.
Anda harus menginstal Python 3.7+ untuk menggunakan SDK streaming Amazon Transcribe asinkron dan untuk modul Python yang disebut pyaudio
, yang Anda gunakan untuk mengontrol mikrofon dan speaker mesin. Modul ini bergantung pada pustaka C yang disebut portaudio.h
. Jika Anda mengalami masalah dengan pyaudio
kesalahan, kami sarankan untuk memeriksa OS Anda untuk melihat apakah Anda memiliki portaudio.h
perpustakaan diinstal.
Untuk otorisasi dan otentikasi panggilan layanan, Anda membuat Identitas AWS dan Manajemen Akses (IAM) peran layanan dengan izin untuk memanggil layanan AWS yang diperlukan. Dengan mengkonfigurasi Antarmuka Baris Perintah AWS (AWS CLI) dengan peran layanan IAM ini, Anda dapat menjalankan skrip kami di mesin Anda tanpa harus memasukkan kunci atau kata sandi, karena pustaka AWS ditulis untuk menggunakan kredensial pengguna AWS CLI yang dikonfigurasi. Ini adalah metode yang nyaman untuk pembuatan prototipe cepat dan memastikan layanan kami dipanggil oleh identitas resmi. Seperti biasa, ikuti prinsip hak istimewa paling rendah saat menetapkan kebijakan IAM saat membuat pengguna atau peran IAM.
Untuk meringkas, Anda memerlukan prasyarat berikut:
- Mesin PC, Mac, atau Linux dengan mikrofon, speaker, dan koneksi internet
- Grafik
portaudio.h
C library untuk OS Anda (brew, apt get, wget), yang diperlukan agar pyaudio berfungsi - AWS CLI 2.0 dengan pengguna IAM resmi yang dikonfigurasi dengan benar dengan menjalankan aws configure di AWS CLI
- Piton 3.7+
- Amazon Transcribe Python SDK asinkron
- Pustaka Python berikut:
boto3
amazon-transcribe
pyaudio
asyncio
concurrent
Terapkan solusinya
Anda akan sangat bergantung pada Amazon Transcribe streaming SDK untuk Python sebagai titik awal, dan akan membangun di atas SDK khusus tersebut. Setelah Anda bereksperimen dengan streaming SDK untuk Python, Anda menambahkan mikrofon streaming masukan dengan menggunakan pyaudio
, pustaka sumber terbuka Python yang umum digunakan untuk memanipulasi data audio. Kemudian Anda menambahkan panggilan Boto3 ke Amazon Translate dan Amazon Polly untuk fungsi terjemahan dan text-to-speech kami. Akhirnya, Anda mengalirkan pidato yang diterjemahkan melalui speaker komputer lagi dengan pyaudio
. Modul Python concurrent
memberi Anda kemampuan untuk menjalankan kode pemblokiran di utas asinkronnya sendiri untuk memutar kembali ucapan Amazon Polly Anda dengan cara yang mulus dan tanpa pemblokiran.
Mari impor semua modul yang diperlukan, transkripsikan kelas streaming, dan buat instance beberapa global:
Pertama, Anda menggunakan pyaudio
untuk mendapatkan laju pengambilan sampel perangkat input, indeks perangkat, dan jumlah saluran:
Jika ini tidak berhasil, Anda juga dapat mengulang dan mencetak perangkat Anda seperti yang ditunjukkan dalam kode berikut, dan kemudian menggunakan indeks perangkat untuk mengambil informasi perangkat dengan pyaudio
:
Kau gunakan channel_count
, sample_rate
, dan dev_index
sebagai parameter dalam aliran mic. Dalam fungsi panggilan balik aliran itu, Anda menggunakan asyncio
nonblocking thread-safe callback untuk memasukkan byte input aliran mikrofon ke dalam asyncio
antrian masukan. Catat objek loop dan input_queue yang dibuat dengan asyncio
dan bagaimana mereka digunakan dalam kode berikut:
Sekarang ketika generator berfungsi mic_stream()
dipanggil, itu terus menghasilkan byte input selama ada data input mikrofon dalam antrian input.
Sekarang setelah Anda mengetahui cara mendapatkan byte input dari mikrofon, mari kita lihat cara menulis byte audio output Amazon Polly ke aliran output speaker:
Sekarang mari kita kembangkan apa yang Anda buat di pos Amazon Transcribe Streaming SDK asinkron untuk Python. Dalam kode berikut, Anda membuat objek eksekutor menggunakan: ThreadPoolExecutor
subclass dengan tiga pekerja dengan bersamaan. Anda kemudian menambahkan panggilan Amazon Translate pada transkrip akhir yang dikembalikan di EventHandler dan meneruskan teks terjemahan itu, objek pelaksana, dan aws_polly_tts()
berfungsi menjadi asyncio
lingkaran dengan loop.run_in_executor()
, yang menjalankan fungsi Amazon Polly kami (dengan teks masukan yang diterjemahkan) secara asinkron di awal iterasi berikutnya asyncio
Loop.
Akhirnya, kita punya loop_me()
fungsi. Di dalamnya, Anda mendefinisikan write_chunks()
, yang mengambil aliran Amazon Transcribe sebagai argumen dan secara asinkron menulis potongan input mic streaming ke dalamnya. Anda kemudian menggunakan MyEventHandler()
dengan aliran transkripsi output sebagai argumennya dan buat objek handler. Kemudian Anda menggunakan menunggu dengan asyncio.gather()
dan berikan write_chunks() dan handler dengan metode handle_events() untuk menangani masa depan coroutine ini. Terakhir, Anda mengumpulkan semua loop acara dan loop loop_me()
berfungsi dengan run_until_complete()
. Lihat kode berikut:
Ketika kode sebelumnya dijalankan bersama-sama tanpa kesalahan, Anda dapat berbicara ke mikrofon dan dengan cepat mendengar suara Anda diterjemahkan ke dalam bahasa Mandarin. Fitur deteksi bahasa otomatis untuk Amazon Transcribe dan Amazon Translate menerjemahkan semua bahasa input yang didukung ke dalam bahasa target. Anda dapat berbicara untuk beberapa waktu dan karena sifat panggilan fungsi yang tidak memblokir, semua input ucapan Anda diterjemahkan dan diucapkan, menjadikannya alat yang sangat baik untuk menerjemahkan pidato langsung.
Kesimpulan
Meskipun postingan ini menunjukkan bagaimana ketiga AWS API yang terkelola sepenuhnya ini dapat berfungsi bersama dengan mulus, kami mendorong Anda untuk memikirkan tentang bagaimana Anda dapat menggunakan layanan ini dengan cara lain untuk memberikan dukungan multibahasa untuk layanan atau media seperti teks tertutup multibahasa untuk sebagian kecil dari biaya saat ini . Kedokteran, bisnis, dan bahkan hubungan diplomatik semuanya dapat memperoleh manfaat dari layanan terjemahan yang terus meningkat, berbiaya rendah, dan rendah pemeliharaan.
Untuk informasi lebih lanjut tentang bukti basis kode konsep untuk kasus penggunaan ini, lihat kami Github.
Tentang Penulis
Michael Trans adalah Arsitek Solusi dengan tim Envision Engineering di Amazon Web Services. Dia memberikan panduan teknis dan membantu pelanggan mempercepat kemampuan mereka untuk berinovasi dengan menunjukkan seni dari kemungkinan di AWS. Dia telah membangun beberapa prototipe seputar AI/ML, dan IoT untuk pelanggan kami. Anda dapat menghubungi saya @Mike_Trann di Twitter.
Cameron Wilkes adalah Arsitek Pembuatan Prototipe di tim AWS Industry Accelerator. Saat berada di tim, dia mengirimkan beberapa prototipe berbasis ML kepada pelanggan untuk mendemonstrasikan โSeni Kemungkinanโ ML di AWS. Dia menikmati produksi musik, off-road dan desain.
- AI
- ai seni
- generator seni ai
- punya robot
- Amazon Polly
- Amazon Transkripsikan
- Amazon Terjemahan
- kecerdasan buatan
- sertifikasi kecerdasan buatan
- kecerdasan buatan dalam perbankan
- robot kecerdasan buatan
- robot kecerdasan buatan
- perangkat lunak kecerdasan buatan
- Pembelajaran Mesin AWS
- blockchain
- konferensi blockchain
- kecerdasan
- kecerdasan buatan percakapan
- konferensi kripto
- dall's
- belajar mendalam
- google itu
- Mesin belajar
- plato
- plato ai
- Kecerdasan Data Plato
- Permainan Plato
- Data Plato
- permainan plato
- skala ai
- sintaksis
- Petunjuk Teknis
- zephyrnet.dll