Ses sınıflandırması

Bir sesin neyi temsil ettiğini belirleme görevine ses sınıflandırması denir. Bir ses sınıflandırma modeli, çeşitli ses olaylarını tanımak için eğitilmiştir. Örneğin, bir modeli üç farklı olayı temsil eden olayları tanıyacak şekilde eğitebilirsiniz: alkış, parmak şıklatma ve yazma. TensorFlow Lite, mobil uygulamalarınızda dağıtabileceğiniz optimize edilmiş önceden eğitilmiş modeller sağlar. Burada TensorFlow kullanarak ses sınıflandırması hakkında daha fazla bilgi edinin.

Aşağıdaki görüntü, Android'deki ses sınıflandırma modelinin çıktısını göstermektedir.

Android örneğinin ekran görüntüsü

Başlamak

TensorFlow Lite'ta yeniyseniz ve Android ile çalışıyorsanız, başlamanıza yardımcı olabilecek aşağıdaki örnek uygulamaları keşfetmenizi öneririz.

Ses sınıflandırma modellerini yalnızca birkaç kod satırında entegre etmek için TensorFlow Lite Görev Kitaplığı'ndaki kullanıma hazır API'den yararlanabilirsiniz. Ayrıca TensorFlow Lite Destek Kitaplığını kullanarak kendi özel çıkarım işlem hattınızı da oluşturabilirsiniz.

Aşağıdaki Android örneği, TFLite Görev Kitaplığı kullanılarak uygulamayı göstermektedir.

Android örneğini görüntüleyin

iOS örneğini görüntüle

Android/iOS dışında bir platform kullanıyorsanız veya TensorFlow Lite API'lerine zaten aşinaysanız, başlangıç ​​modelini ve destekleyici dosyaları (varsa) indirin.

TensorFlow Hub'dan başlangıç ​​modelini indirin

Model Açıklaması

YAMNet, girdi olarak ses dalga biçimini alan ve AudioSet ontolojisinden 521 ses olayının her biri için bağımsız tahminler yapan bir ses olayı sınıflandırıcıdır. Model, MobileNet v1 mimarisini kullanır ve AudioSet corpus kullanılarak eğitilmiştir. Bu model ilk olarak model kaynak kodunun, orijinal model kontrol noktasının ve daha ayrıntılı belgelerin bulunduğu TensorFlow Model Garden'da yayınlandı.

Nasıl çalışır

YAMNet modelinin TFLite'a dönüştürülmüş iki sürümü vardır:

  • YAMNet , Transfer Öğrenimi, Web ve Mobil dağıtım için uygun, dinamik giriş boyutuna sahip orijinal ses sınıflandırma modelidir. Ayrıca daha karmaşık bir çıktıya sahiptir.

  • YAMNet/sınıflandırma , daha basit sabit uzunluklu çerçeve girişi (15600 örnek) ile nicelleştirilmiş bir sürümdür ve 521 ses olayı sınıfı için tek bir puan vektörü döndürür.

girişler

Model, [-1.0, +1.0] aralığında mono 16 kHz örnekler olarak temsil edilen 0,975 saniyelik bir dalga formu içeren 15600 uzunluğunda bir 1-D float32 Tensör veya NumPy dizisini kabul eder.

çıktılar

Model, AudioSet ontolojisinde YAMNet tarafından desteklenen 521 sınıfın her biri için tahmin edilen puanları içeren 2 boyutlu bir float32 şekil Tensörü (1, 521) döndürür. Skor tensörünün sütun indeksi (0-520), model dosyasına paketlenmiş ilişkili bir yamnet_label_list.txt dosyası olarak mevcut olan YAMNet Sınıf Haritası kullanılarak ilgili AudioSet sınıf adına eşlenir. Kullanım için aşağıya bakın.

Uygun kullanımlar

YAMNet kullanılabilir

  • çok çeşitli ses olayları arasında makul bir temel sağlayan bağımsız bir ses olayı sınıflandırıcısı olarak.
  • yüksek seviyeli bir özellik çıkarıcı olarak: YAMNet'in 1024 boyutlu gömme çıkışı, daha sonra belirli bir görev için az miktarda veri üzerinde eğitilebilen başka bir modelin giriş özellikleri olarak kullanılabilir. Bu, çok sayıda etiketli veri gerektirmeden ve uçtan uca büyük bir modeli eğitmek zorunda kalmadan özel ses sınıflandırıcılarının hızla oluşturulmasına olanak tanır.
  • sıcak bir başlangıç ​​olarak: YAMNet model parametreleri, daha hızlı ince ayar ve model keşfine izin veren daha büyük bir modelin bir bölümünü başlatmak için kullanılabilir.

sınırlamalar

  • YAMNet'in sınıflandırıcı çıktıları sınıflar arasında kalibre edilmemiştir, bu nedenle çıktıları doğrudan olasılık olarak değerlendiremezsiniz. Verilen herhangi bir görev için, sınıf başına uygun puan eşikleri ve ölçeklendirme atamanıza olanak tanıyan göreve özel verilerle bir kalibrasyon gerçekleştirmeniz gerekir.
  • YAMNet, milyonlarca YouTube videosu üzerinde eğitilmiştir ve bunlar çok çeşitli olmasına rağmen, ortalama YouTube videosu ile herhangi bir görev için beklenen ses girişleri arasında hala bir alan uyuşmazlığı olabilir. YAMNet'i oluşturduğunuz herhangi bir sistemde kullanılabilir hale getirmek için bir miktar ince ayar ve kalibrasyon yapmayı beklemelisiniz.

Model özelleştirme

Sağlanan önceden eğitilmiş modeller, 521 farklı ses sınıfını algılamak için eğitilmiştir. Sınıfların tam listesi için model deposundaki etiketler dosyasına bakın.

Orijinal kümede olmayan sınıfları tanımak için bir modeli yeniden eğitmek için transfer öğrenimi olarak bilinen bir teknik kullanabilirsiniz. Örneğin, birden çok kuş ötüşünü algılamak için modeli yeniden eğitebilirsiniz. Bunu yapmak için, eğitmek istediğiniz her yeni etiket için bir dizi eğitim sesine ihtiyacınız olacak. Önerilen yol, özel veri kümesi kullanarak bir TensorFlow Lite modelinin eğitim sürecini birkaç kod satırında basitleştiren TensorFlow Lite Model Maker kitaplığını kullanmaktır. Gerekli eğitim verilerinin miktarını ve süresini azaltmak için aktarım öğrenimini kullanır. Ayrıca, aktarım öğrenimine bir örnek olarak ses tanıma için Aktarım öğreniminden de öğrenebilirsiniz.

Daha fazla okuma ve kaynaklar

Ses sınıflandırmasıyla ilgili kavramlar hakkında daha fazla bilgi edinmek için aşağıdaki kaynakları kullanın: