Bir insan tercümana ihtiyaç duymadan dünyanın dört bir yanındaki hastalarla görüntülü görüşme yapan bir cerrah düşünün. Ya acemi bir girişim, canlı bir insan çevirmene ihtiyaç duymadan akıcı, doğru, çok dilli müşteri desteği ve satış sunarak ürünlerini sınırların ötesine ve yeni coğrafi pazarlara kolayca genişletebilseydi? Artık dile bağlı olmadığınızda işinize ne olur?
Birçok farklı dili konuşan uluslararası ekipler ve müşterilerle sanal toplantılar yapmak günümüzde yaygın bir uygulamadır. İster dahili ister harici toplantılar olsun, anlam genellikle karmaşık tartışmalarda kaybolur ve olabildiğince etkili olmanızı engelleyen dil engelleriyle karşılaşabilirsiniz.
Bu gönderide, tam olarak yönetilen üç AWS hizmetinin nasıl kullanılacağını öğreneceksiniz (Amazon Yazısı, Amazon Tercüme, ve Amazon Polly) tamamen sıfır makine öğrenimi (ML) deneyimi ile bir kaynak konuşmacının canlı ses girişini sözlü, doğru, çevrilmiş bir hedef dile hızla çevirebilen, gerçek zamanlıya yakın bir konuşmadan konuşmaya çevirmen çözümü üretmek.
Çözüme genel bakış
Çevirmenimiz, aşağıdakileri kullanarak tek bir Python betiğinde birlikte çalışan tam olarak yönetilen üç AWS ML hizmetinden oluşur: Python için AWS SDK (Boto3) metin çevirisi ve metinden konuşmaya bölümlerimiz ve ses girişi transkripsiyonu için eşzamansız akış SDK'sı için.
Amazon Transcribe: Konuşmayı metne aktarma
Yığınımızda kullandığınız ilk hizmet, giriş konuşmasını alıp metne dönüştüren, tam olarak yönetilen bir konuşmadan metne hizmet olan Amazon Transcribe'dır. Amazon Transcribe, depolanmış ses dosyalarını veya akışlı ses verilerini kabul ettiği için toplu veya akış şeklinde esnek alma yöntemlerine sahiptir. Bu gönderide, Python için eşzamansız Amazon Transcribe akış SDK'sı, canlı ses akışı yapmak ve canlı dökümleri almak için HTTP/2 akış protokolünü kullanan.
Bu prototipi ilk oluşturduğumuzda Amazon Transcribe akış alımı otomatik dil algılamayı desteklemiyordu, ancak Kasım 2021'den itibaren bu durum artık geçerli değil. Hem toplu hem de akış kullanımı artık herkes için otomatik dil algılamayı destekliyor desteklenen diller. Bu gönderide, akışlı otomatik dil algılamanın kullanılmasıyla sorunsuz çok dilli parametresiz bir tasarım olsa da parametre tabanlı bir çözümün nasıl mümkün olduğunu gösteriyoruz. Yazıya dökülmüş konuşma segmentimiz metin olarak döndürüldükten sonra, Amazon Translate'e tercüme etmesi ve sonuçları Amazon Transkripsiyonumuzda döndürmesi için bir istek gönderirsiniz. EventHandler
yöntemi.
Amazon Translate: Son teknoloji ürünü, tam olarak yönetilen çeviri API'si
Yığınımızın bir sonraki durağı, hızlı, yüksek kaliteli, uygun fiyatlı ve özelleştirilebilir dil çevirisi sunan bir sinirsel makine çevirisi hizmeti olan Amazon Translate. Haziran 2022 itibarıyla Amazon Çeviri, sürekli olarak yeni dil çiftleri ve iyileştirmeler yapılarak 75 dilde çeviriyi desteklemektedir. Amazon Translate, kullanım durumunuza bağlı olarak gerçek zamanlı veya toplu olarak doğru çevirileri hızlı bir şekilde sunmak için yüksek düzeyde ölçeklenebilir ve esnek bir AWS Bulut mimarisinde barındırılan derin öğrenme modellerini kullanır. Amazon Translate'i kullanmak basittir ve temel mimarinin veya makine öğrenimi becerilerinin yönetimini gerektirmez. Amazon Translate'in bir dosya oluşturma ve kullanma gibi çeşitli özellikleri vardır. özel terminoloji sektöre özgü terimler arasındaki eşlemeyi işlemek için. Amazon Translate hizmet sınırları hakkında daha fazla bilgi için bkz. Yönergeler ve sınırlar. Uygulama, çevrilmiş metni hedef dilimizde aldıktan sonra, çevrilen metni anında çevrilmesi için Amazon Polly'ye gönderir.
Amazon Polly: Tümüyle yönetilen metinden konuşmaya API
Son olarak, çevrilmiş metni, anında akış oynatma için gerçeğe yakın ses klibi yanıtları gönderebilen veya toplu olarak ve kaydedilerek geri gönderebilen, tam olarak yönetilen bir metinden konuşmaya hizmeti olan Amazon Polly'ye gönderirsiniz. Amazon Basit Depolama Hizmeti (Amazon S3) daha sonra kullanmak üzere. Telaffuz, ses düzeyi, perde, konuşma hızı ve daha fazlası gibi konuşmanın çeşitli yönlerini standartlaştırılmış kullanarak kontrol edebilirsiniz. Konuşma Sentezi İşaretleme Dili (SSML).
Belirli Amazon Polly için konuşma sentezleyebilirsiniz sinirsel sesler TV veya radyo haber spikeri gibi ses çıkarmak için Haber spikeri stilini kullanma. Ayrıca, ses akışına dahil edilen meta verilere dayalı olarak metindeki belirli kelimelerin veya cümlelerin ne zaman söylendiğini de tespit edebilirsiniz. Bu, geliştiricinin, bir avatarın dudak hareketleri gibi grafik vurgulamaları ve animasyonları sentezlenmiş konuşmayla senkronize etmesine olanak tanır.
Şirket adları, kısaltmalar, yabancı kelimeler veya neolojizmler gibi belirli kelimelerin telaffuzunu değiştirebilirsiniz, örneğin “P!nk”, “ROTFL” veya “C'est la vie” (Fransızca olmayan bir dilde konuşulduğunda). ses), özel sözlükler kullanarak.
Mimariye genel bakış
Aşağıdaki şema çözüm mimarimizi göstermektedir.
İş akışı aşağıdaki gibidir:
- Ses, Python SDK tarafından alınır.
- Amazon Polly, konuşmayı 39 olası dilde metne dönüştürür.
- Amazon Translate, dilleri dönüştürür.
- Amazon Live Transcribe, metni konuşmaya dönüştürür.
- Ses hoparlörlere verilir.
Önkoşullar
Mikrofon, hoparlör ve güvenilir internet bağlantısı ile kurulmuş bir ana makineye ihtiyacınız var. Modern bir dizüstü bilgisayar bunun için iyi çalışmalıdır çünkü ek bir donanıma ihtiyaç yoktur. Ardından, makineyi bazı yazılım araçlarıyla kurmanız gerekir.
Eşzamansız Amazon Transcribe akış SDK'sını kullanmak ve adlı bir Python modülü için Python 3.7+ yüklü olmalıdır. pyaudio
, makinenin mikrofonunu ve hoparlörlerini kontrol etmek için kullanırsınız. Bu modül adı verilen bir C kitaplığına bağlıdır. portaudio.h
. ile ilgili sorunlarla karşılaşırsanız pyaudio
hatalara sahip olup olmadığınızı görmek için işletim sisteminizi kontrol etmenizi öneririz. portaudio.h
kitaplık kuruldu.
Servis çağrılarının yetkilendirilmesi ve doğrulanması için bir AWS Kimlik ve Erişim Yönetimi (IAM) gerekli AWS hizmetlerini çağırma izinlerine sahip hizmet rolü. yapılandırarak AWS Komut Satırı Arayüzü (AWS CLI) bu IAM hizmet rolüyle, AWS kitaplıkları yapılandırılmış AWS CLI kullanıcısının kimlik bilgilerini kullanacak şekilde yazıldığından, anahtarları veya parolaları girmek zorunda kalmadan komut dosyamızı makinenizde çalıştırabilirsiniz. Bu, hızlı prototipleme için uygun bir yöntemdir ve hizmetlerimizin yetkili bir kimlik tarafından çağrılmasını sağlar. Her zaman olduğu gibi, bir IAM kullanıcısı veya rolü oluştururken IAM politikaları atarken en az ayrıcalık ilkesini izleyin.
Özetlemek gerekirse, aşağıdaki ön koşullara ihtiyacınız var:
- Mikrofon, hoparlör ve internet bağlantısı olan bir PC, Mac veya Linux makinesi
- The
portaudio.h
İşletim sisteminiz için pyaudio'nun çalışması için gerekli olan C kitaplığı (brew, apt get, wget) - AWS CLI'de aws configuration çalıştırılarak yapılandırılmış, uygun şekilde yetkilendirilmiş IAM kullanıcısı olan AWS CLI 2.0
- piton 3.7+
- Eşzamansız Amazon Transcribe Python SDK'sı
- Aşağıdaki Python kitaplıkları:
boto3
amazon-transcribe
pyaudio
asyncio
concurrent
Çözümü uygula
Başlangıç noktası olarak Python için eşzamansız Amazon Transcribe akış SDK'sına büyük ölçüde güveneceksiniz ve bu belirli SDK'nın üzerine inşa edeceksiniz. Python için akış SDK'sını denedikten sonra, akış mikrofonu kullanarak giriş pyaudio
, ses verilerini işlemek için kullanılan yaygın olarak kullanılan bir Python açık kaynak kitaplığı. Ardından, çeviri ve metin okuma işlevimiz için Amazon Translate ve Amazon Polly'ye Boto3 çağrıları eklersiniz. Son olarak, çevrilmiş konuşmayı yeniden bilgisayarın hoparlörlerinden aktarırsınız. pyaudio
. Python modülü concurrent
size, iade edilen Amazon Polly konuşmanızı kesintisiz, engellenmeyen bir şekilde oynatmak için kendi eşzamansız iş parçacığında engelleme kodu çalıştırma olanağı sağlar.
Gerekli tüm modüllerimizi içe aktaralım, akış sınıflarını kopyalayalım ve bazı globalleri somutlaştıralım:
İlk olarak, kullanırsın pyaudio
giriş cihazının örnekleme oranını, cihaz indeksini ve kanal sayısını elde etmek için:
Bu işe yaramazsa, aşağıdaki kodda gösterildiği gibi aygıtlarınız arasında geçiş yapabilir ve aygıtlarınızı yazdırabilir ve ardından aygıt bilgilerini almak için aygıt dizinini kullanabilirsiniz. pyaudio
:
Kullan channel_count
, sample_rate
, ve dev_index
bir mikrofon akışında parametreler olarak. Bu akışın geri arama işlevinde, bir asyncio
mikrofon akışının giriş baytlarını bir asyncio
giriş kuyruğu. İle oluşturulan döngü ve input_queue nesnelerini not alın asyncio
ve aşağıdaki kodda nasıl kullanıldıkları:
Şimdi jeneratör işlevi mic_stream()
çağrılırsa, giriş kuyruğunda mikrofon giriş verileri olduğu sürece sürekli olarak giriş baytları verir.
Artık mikrofondan giriş baytlarını nasıl alacağınızı bildiğinize göre, Amazon Polly çıkış ses baytlarının bir hoparlör çıkış akışına nasıl yazılacağına bakalım:
Şimdi gönderide oluşturduğunuz şeyi genişletelim Python için Eşzamansız Amazon Transcribe Akış SDK'sı. Aşağıdaki kodda, kullanarak bir yürütücü nesnesi yaratırsınız. ThreadPoolExecutor
eşzamanlı üç işçi ile alt sınıf. Daha sonra EventHandler'da kesin olarak döndürülen döküme bir Amazon Translate çağrısı eklersiniz ve bu çevrilen metni, yürütücü nesneyi ve aws_polly_tts()
bir işleve asyncio
ile döngü loop.run_in_executor()
, Amazon Polly işlevimizi (çevrilmiş giriş metniyle birlikte) bir sonraki yinelemenin başlangıcında eşzamansız olarak çalıştırır. asyncio
döngü.
Sonunda, loop_me()
işlev. İçinde sen tanımla write_chunks()
, bir Amazon Transcribe akışını argüman olarak alır ve eşzamansız olarak akış mikrofon girişi parçalarını buna yazar. sonra kullanırsın MyEventHandler()
argümanı olarak çıktı transkripsiyon akışı ile ve bir işleyici nesnesi oluşturun. O zaman beklemeyi kullanırsın asyncio.gather()
ve bu eşyordamların nihai geleceklerini işlemek için write_chunks() ve işleyiciyi handle_events() yöntemiyle iletin. Son olarak, tüm olay döngülerini toplarsınız ve loop_me()
ile çalışmak run_until_complete()
. Aşağıdaki koda bakın:
Yukarıdaki kod hatasız bir şekilde birlikte çalıştırıldığında, mikrofona konuşabilir ve sesinizin Mandarin Çincesine çevrildiğini hızlı bir şekilde duyabilirsiniz. Amazon Transcribe ve Amazon Translate için otomatik dil algılama özelliği, desteklenen herhangi bir giriş dilini hedef dile çevirir. Oldukça uzun bir süre konuşabilirsiniz ve işlev çağrılarının engellenmeyen doğası nedeniyle, tüm konuşma girdileriniz çevrilir ve konuşulur, bu da bunu canlı konuşmaları çevirmek için mükemmel bir araç haline getirir.
Sonuç
Bu gönderi, tam olarak yönetilen bu üç AWS API'sinin birlikte sorunsuz bir şekilde nasıl çalışabileceğini gösterse de, bu hizmetleri, mevcut maliyetin çok küçük bir kısmı için hizmetler veya çok dilli kapalı altyazı gibi ortamlar için çok dilli destek sağlamak üzere başka şekillerde nasıl kullanabileceğinizi düşünmenizi öneririz. . Tıp, ticaret ve hatta diplomatik ilişkiler, sürekli gelişen, düşük maliyetli, az bakım gerektiren bir çeviri hizmetinden yararlanabilir.
Bu kullanım senaryosu için kavram kodu tabanı kanıtı hakkında daha fazla bilgi için sayfamıza göz atın. Github.
Yazarlar Hakkında
Michael Trans Amazon Web Services'de Envision Engineering ekibiyle birlikte bir Çözüm Mimarıdır. Teknik rehberlik sağlar ve mümkün olanın sanatını AWS'de göstererek müşterilerin yenilik yapma becerilerini hızlandırmalarına yardımcı olur. Müşterilerimiz için AI/ML ve IoT etrafında çok sayıda prototip oluşturdu. Twitter'da @Mike_Trann ile iletişime geçebilirsiniz.
Cameron Wilkes AWS Industry Accelerator ekibinde bir Prototip Oluşturma Mimarıdır. Ekipteyken, AWS'de ML'nin "Mümkün olanın Sanatı"nı göstermek için müşterilere birkaç ML tabanlı prototip teslim etti. Müzik prodüksiyonu, arazi sürüşü ve tasarımdan hoşlanıyor.
- AI
- yapay zeka
- AI sanat üreteci
- yapay zeka robotu
- Amazon Polly
- Amazon Yazısı
- Amazon Tercüme
- yapay zeka
- yapay zeka sertifikası
- bankacılıkta yapay zeka
- yapay zeka robotu
- yapay zeka robotları
- yapay zeka yazılımı
- AWS Makine Öğrenimi
- blockchain
- blockchain konferans ai
- zeka
- konuşma yapay zekası
- kripto konferans ai
- dal-e
- derin öğrenme
- google ai
- makine öğrenme
- Platon
- plato yapay zekası
- Plato Veri Zekası
- Plato Oyunu
- PlatoVeri
- plato oyunu
- ölçek ai
- sözdizimi
- Teknik Nasıl Yapılır
- zefirnet