İyi günler Türk Hack Team ailesi.
Bugün sizlere sosyal medya da devamlı denk geldiğimiz, x kişisinin sesiyle y kişisinin şarkısını seslendirmeyi yani ses klonlamayı anlatacağım.
Eğer yeteri kadar ilgi gelirse, bir başka konuda da klonlanlanmış sesi tespit etmeyi anlatabilirim.
Aktif olarak sosyal medya kullanıyorsanız, bu sıralar mutlaka ünlü bir kişinin x şarkısını çok profesyonel bir şekilde ai ile coverlandığına denk gelmişsinizdir.
Örnek:
Yaklaşık 1 aydır bu konu çok popüler. Fakat, bu konu aslında o kadar da yeni birşey değil. Sadece geniş kitlelere ulaşabilecek kolaylığa yeni erişiyor.
Bugün de bu konu üzerinde duracağız.
Ses Eğitme İşlemi
Retrieval-based Voice Conversion yani kısaca RVC yazılımı üzerine geliştirilmiş mimarileri kullanacağız. Peki neden? Çünkü RVC diğer ai algoritmalarına göre 10 dakikadan kısa ses kayıtlarıyla mükemmel klonlar oluşturmanızı sağlıyor.
Bu adrese giderek colab dosyasını drive adresimize kopyalayalım.
Ardından sol tarafta bulunan play butonuna basarak notebook'ta yer alan kodumuzu çalıştırarak kurulumu yapalım.
Notebook da kurulum tamamlandıktan sonra, Google Colab bize bir Gradio linki oluşturacak. Link oluştuktan sonra linke giriş yapalım.
Linke giriş yaptıktan sonra eğer yapay zeka uygulamalarıyla ilgileniyorsanız, görmeye alışık olduğumuz hugging face temasında bir sayfa açıldığını fark edeceksiniz.
Burada en üstte yer alan Train sekmesine giriş yapalım.
Bütün ses eğitme işlemlerimizi burada yapacağız. Kimin sesini eğitmek istiyorsak, o kişinin temiz bir ses kaydına ihtiyacımız var. Ünlü bir kişinin ses kaydını alacaksanız eğer Youtube'den bulup, mp3 çevirebilirsiniz. Ses kaydı uzunluğu olarak ne kadar uzun bir veri verirseniz o kadar doğru sonuçlar elde edebilirsiniz. Fakat, bu durum işlem süresini arttırır. Ayrıca wav uzantılı dosyalarla çalışmak da daha temiz bir sonuç elde etmenizi sağlayabilir. Çünkü wav dosyaları, mp3 dosyaları gibi sıkıştırılmadan saklanıyor.
RVC kullanmamızın avantajı 10 dakikadan kısa ses kayıtlarıyla bile çok daha stabil ses klonları elde etmemizdi. Bundan dolayı başlangıç için 5-9 dakika aralığında bir ses kaydı kullanabilirsiniz.
Voice Name kısmına eğitteceğiniz sesin modelini ne olarak isimlendirmek istiyorsanız yazabilirsiniz.
Path kısmına dokunmanıza gerek yok.
Ardından bi altında yer alan dosya yükleme kısmına eğitmek istediğiniz kişinin ses kaydını sürükleyip, bırakın.
Bu işlemi yaparken sağ tarafta Uploading yazısı, Download butonuna dönüşene kadar bekleyin. Download yazısı geldikten sonra 30 saniye daha bekleyin. Çünkü, Colab üzerinden çalıştığımız için hemen driveye yansımayabiliyor. Ardından Process The Dataset butonuna tıklayın.
Ekranda "end preprocess" yazısını gördüğümüzde işlem tamamlanmış demektir. Bu işlem kısaca ses dosyasını belirli parçalara bölüyor.
Ardından pencerenin ortasında yer alan kısımdan hiçbir ayarı değiştirmeden Pitch Extraction butonuna basabilirsiniz.
Bu işlem de yüklemiş olduğunuz ses içerisinde yer alan ses tonlarını, tınılarını, vb. çıkarmayı sağlıyor.
Bu işlem de yaklaşık 5 dakika kadar sürebilir.
İşlem tamamlandığında ekranda all-feature-done yazısını görmeniz gerekiyor. Ayrıca beklerken yanlış birşey mi yaptım? gibi telaşlanmayın. Google Colab üzerindeki terminalden işlemleri ve %kaç tamamlandığını görüntüleyebilirsiniz.
Ardından en sağ tarafta yer alan kısıma geçebiliriz. Burası artık ses dosyasını eğitmeye başladığımız kısım. Epoch dediğimiz kavram yapay sinir ağının sizin datasetinizin üzerinden kaç defa geçeceğini belirtir. Her tekrarladığında da bir önceki kontrolüne göre yaptığı yanlışları tahminleyerek düzeltmeler uygular. Bu şekilde de daha doğru sonuçlar elde etmenizi sağlar. Buraya 200-250 arası bir değer girebilirsiniz. Daha doğru sonuçlar için biraz daha yüksek değer girebilirsiniz. Fakat, eğer çok yüksek değer girerseniz bu durum modelinizin bozulmasına ve yanlış sonuçlar vermesine neden olabilir. Ben 250 kullanmanızı tavsiye ederim.
Ardından Train Model butonuna basarak verimizi eğitelim. Bu işlem girdiğiniz verinin kalitesine, uzunluğuna, boyutuna,vb. bağlı olarak dakikalarca veya saatlerce sürebilir.
Eğitim tamamlandıktan sonra Train Index butonuna tıklayın. Bu işlem, diğerine göre daha kısa sürecektir.
Ardından Download Model butonuna tıklayın.
Bu aşamaya kadar doğru geldiyseniz, görseldeki gibi 2 adet indirilebilir dosya görmeniz gerekiyor.
Bu dosyaları bilgisayarınıza indirin ve tek bir zip olacak şekilde zipleyin. Ardından Google Drive'da anasayfaya yükleyebilirsiniz. Ben biraz daha düzenli çalışmak için models diye bir klasör oluşturdum ve onun içine yükledim.
Artık cover yapabiliriz!
Cover Yapma İşlemi
Cover yapmak için öncelikle cover yapacağınız şarkının vocal seslerine ihtiyacınız var.
Bunun için ilk önce cover yapacağımız şarkıyı mp3 olarak indirelim.
Ardından bu linke giderek şarkımızı yükleyelim.
İşlem tamamlandıktan sonra sağ tarafta yer alan Save butonundan Music ve Vocal'i bilgisayarımıza indirelim. Bu servis günde 1 kere kullanma hakkı veriyor size. Fakat Deezer Spleeter gibi opensource yazılımlarla sınırsız bir şekilde kendi bilgisayarınızda aynı işlemi gerçekleştirebilirsiniz. Zaten bu website de aynı altyapıyı kullanıyor. Uzun bir konu olduğu için manuel bu işlemi nasıl gerçekleştireceğinizi başka bir konuya saklıyorum
Bu işlemi de yaptıktan sonra Colabımızda çalıştırdığımız gradio sayfasına geri dönüyoruz ve Inference sekmesine giriyoruz. Ekranın sol üst kısmında yer alan refresh butonuna basıyoruz.
Bu işlemi yaptıktan sonra Choose your Model. kısmında Drive'ye yüklediğimiz zip dosyasını algılıyor ve eğitilmiş modelleri görüntülüyor. Modelimizi seçelim.
Ardından bi alt kısmında yer alan dosya sürükleme yerine indirmiş olduğumuz şarkının vocalini atalım.
Ardından hiçbir şeye dokunmadan, sağ tarafta yer alan Convert butonuna tıklayalım. Bu işlem yaklaşık 1-2 dakika sürer.
İşlem tamamlandıktan sonra ses klonlama işleminiz hazır! Klonlanmış sesi sağ tarafta yer alan ekranda görebilirsiniz. Sağ tıklayıp bilgisayarınıza kaydedebilirsiniz.
Burdan sonrası artık klonlanmış ses ile arka plandaki müziği birleştirmeye kalıyor. Birleştirme işlemi için herhangi bir aracı kullanabilirsiniz.
Ben AudaCity Kullanıyorum.
Benim vocalim ve arkaplanda yer alan müziği AudaCity'e attıktan sonra export ediyorum ve işlem tamamlanmış oluyor. Ayrıca küçük bir tavsiye, genelde arkaplan müziği daha baskın oluyor. Bundan dolayı db ayarlarından birazcık sesi düşürebilirsiniz.
Umarım konu ilginizi çekmiştir. Derin öğrenme ile ilgili daha önceden yazmış olduğum şu konuya da göz atabilirsiniz: