İşitsel Çeviri, herhangi bir Türkçe videonun sesini işleyerek sürekli bir şekilde Türkçe işaret diline çeviren, Progressive Transformer mimarisine dayalı bir yapay zeka modelidir.
İşitme engelliler, çevresiyle iletişim kurmada ve günümüz internet çağında bilgiye ulaşmada işaret dilini kullanmak zorundadırlar. Fakat onların diline çeviri sunan kaynaklar neredeyse yok denecek kadar azdır. Bu durum, işitme engellilerin toplumdan soyutlanmasına ve bilgiye erişimlerinin kısıtlanmasına yol açmaktadır. Projemizin asıl motivasyonu, işitme engelli bireylerin herhangi bir videoyu veya metni kendi dillerinde, yani işaret diliyle anlayabilmeleri için bir yapay zeka sistemi geliştirmektir.
Amacımız, işitme engelli bireylerin dijital dünyada daha bağımsız olmalarını sağlamak, bilgiye erişimlerini kolaylaştırmak ve onların da kendi dillerinde bilgiye erişmelerine olanak vermektir.
Projemiz, veriseti üretimi ve üretilen verisetini Progressive Transformer modeli ile eğitmek olmak üzere iki aşamaya ayrılmıştır.
İnternet üzerinde Türkçe işaret dili içeren kaynaklar araştırılarak farklı alanlardan işaret dili videoları bulunmuştur.
Bu videoların toplam süresi 100 saati bulmaktadır ve aşağıdaki kodlarla gerekli tüm düzenlemeler yapılabilir hale getirilmiştir. YouTube'da Türkçe işaret dili içeren birçok video bulunduğundan, istenilen videolar üzerinden veriseti oluşturma yöntemini paylaşarak, kendi verisetlerinizi oluşturabilir ve yapay zeka modelini eğitebilirsiniz.
Kendi videolarınız üzerinde poz çıkarımı yapmak için data_creation
klasörüne gidip videos.txt
dosyasını kendi video URL'leri ile değiştirmeniz gerekir.
- Video sesleri kullanılarak poz çıkarımı.
- OpenPose modeli kullanılarak her frame için poz üretimi.
- Üretilen pozlar üzerinde hatalar tespit edilip ağırlıklı bir algoritma ile yeniden işleme.
- Verilerin normalize edilmesi ve poz cümleleri ile metinlerin eşlenmesi.
YouTube Üzerinden Seçilen Videoları İndirmek ve Her Frame için İstenilen İnsan İskeletini (Pozlarını) Çıkarmak
Kaliteli işaret dili ve açıklayıcı ses içeren videolar bulmak projenin ana sorunlarından biri olmuştur. Bunun nedenleri; poz ve ses arasındaki gecikmeler, işaret dili çeviricisinin ekranın çok küçük bir alanında kalması (örneğin haber kanallarında sağ köşede çok küçük bir alanın kullanılması) ve işaret diliyle her sesin çevrilmemesiydi.
İnternet üzerinde birçok video araştırıldıktan sonra, TRT Haber'in işitme engelliler için özel olarak hazırladığı İşitme Engelliler Haber Bülteni yayını ile karşılaştık. Bu yayında ekranın yarısını işaret dili çevirmeni, diğer yarısını ise haber sunucusu kaplıyordu. Yayındaki 114 haber ile bir veriseti oluşturmaya başlandı.
Karşılaşılan bir diğer zorluk ise videolardan iskelet pozlarını çıkarmaktı. Burada OpenPose ve MediaPipe kütüphaneleri denenmiştir. OpenPose kütüphanesi kullanırken el+poz verisi için 10 GB VRAM gerekmekte ve 10 dakikalık bir video için 30 dakikalık işlem süresi gerekmekteydi. MediaPipe ise tam zamanlı olarak CPU'da bile çalışabilmekte, ancak ürettiği sonuçlar OpenPose kadar doğru ve tutarlı olmamaktadır.
Geliştirdiğimiz verisetinde, OpenPose kütüphanesi kullanılarak bulutta GPU kiralanıp pozlar çıkarıldı. Bu işlemin normalden üç kat daha yavaş olması nedeniyle videoların sadece bir bölümü veriseti olarak kullanıldı. Ancak paylaşılan kodlarla tüm videolardan poz çıkarımı yapılabilir.
Geliştirilen yapay zeka modeli, metin alıp poz verisi ürettiğinden, YouTube videolarının metin verisine çevrilmesi gerekiyordu. Bunun için OpenAI'ın Whisper modeli kullanıldı. Çıkarılan metinler ile o aralıktaki pozlar eşleştirilerek train, test ve val verisetleri kaydedildi.
Geliştirdiğimiz model, giriş olarak aldığı metin cümlesini işleyerek encodera aktarır. Decoder modeli ise auto-regressive bir şekilde poz verilerini üretir. Üretilen poz verileri, giriş cümlesinin işaret diline çevrilmiş halidir.
![Model Mimarisi](https://private-user-images.githubusercontent.com/77508537/356419270-9980cb33-2947-43a8-b54d-63581d861fdd.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQxODU3NjcsIm5iZiI6MTcyNDE4NTQ2NywicGF0aCI6Ii83NzUwODUzNy8zNTY0MTkyNzAtOTk4MGNiMzMtMjk0Ny00M2E4LWI1NGQtNjM1ODFkODYxZmRkLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIwVDIwMjQyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMwZmNhZGQzNzYxNWJiZGQzMGM3ZDRiNjZlMDBkMjVhZmQzYWFkMTAwYTQ0MzA5NjAwZDJhZTRlM2ZhMDIzZTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.n4mUn2XfFPTPzkPxH5VubGfdbmzIAGRuaSx6WZQVY10)
Verisetlerini elde ettikten sonra bu adrese gidebilir ve model eğitimine başlayabilirsiniz.
Projemizin asıl amacı işitme engelliler için işaret dili konuşan insan videoları üretmek olduğundan, bu hedef üzerinde stable diffusion modellerini kendi poz verimiz ile çalışır hale getirdik. Burada elde ettiğimiz bir örnek videoyu paylaşıyoruz.