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ğitilir. Örneğin, üç farklı olayı temsil eden olayları tanımak için bir model eğitebilirsiniz: alkışlama, parmak şaklatma ve yazma. TensorFlow Lite, mobil uygulamalarınızda devreye alabileceğiniz optimize edilmiş önceden eğitilmiş modeller sağlar. TensorFlow kullanarak ses sınıflandırması hakkında daha fazla bilgiyi buradan edinebilirsiniz .
Aşağıdaki görüntü, Android'deki ses sınıflandırma modelinin çıktısını göstermektedir.
Başlamak
TensorFlow Lite'ta yeniyseniz ve Android ile çalışıyorsanız, başlamanıza yardımcı olabilecek aşağıdaki örnek uygulamaları incelemenizi öneririz.
Ses sınıflandırma modellerini yalnızca birkaç satır kodla entegre etmek için TensorFlow Lite Görev Kitaplığı'ndaki kullanıma hazır API'den yararlanabilirsiniz. TensorFlow Lite Destek Kitaplığı'nı kullanarak kendi özel çıkarım ardışık düzeninizi de oluşturabilirsiniz .
Aşağıdaki Android örneği, TFLite Görev Kitaplığı kullanılarak uygulamayı göstermektedir
Model Açıklaması
YAMNet, ses dalga biçimini girdi olarak alan ve AudioSet ontolojisindeki 521 ses olayının her biri için bağımsız tahminler yapan bir ses olay sınıflandırıcısıdır. Model, MobileNet v1 mimarisini kullanır ve AudioSet korpusu kullanılarak eğitilmiştir. Bu model ilk olarak, model kaynak kodu, orijinal model kontrol noktası ve daha ayrıntılı dokümantasyonun bulunduğu TensorFlow Model Garden'da piyasaya sürüldü.
Nasıl çalışır
YAMNet modelinin TFLite'a dönüştürülmüş iki sürümü vardır:
YAMNet Transfer Öğrenme, Web ve Mobil dağıtım için uygun, dinamik girdi boyutuna sahip orijinal ses sınıflandırma modelidir. Aynı zamanda daha karmaşık bir çıktıya sahiptir.
YAMNet / sınıflandırma , daha basit bir sabit uzunluktaki çerçeve girdisine (15600 örnek) sahip nicelleştirilmiş bir sürümdür ve 521 sesli 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 gösterilen 0.975 saniyelik bir dalga formu içeren 15600 uzunluğunda bir 1-D
float32 Tensor veya NumPy dizisini kabul eder.
çıktılar
Model, YAMNet tarafından desteklenen AudioSet ontolojisindeki 521 sınıfının her biri için tahmin edilen skorları içeren 2-D
float32 Tensor (1, 521) döndürür. Puan tensörünün sütun indeksi (0-520), model dosyasına paketlenmiş ilişkili bir dosya
yamnet_label_list.txt olarak bulunan YAMNet Sınıf Haritası kullanılarak karşılık gelen AudioSet sınıf adına eşleştirilir. Kullanım için aşağıya bakın.
Uygun kullanımlar
YAMNet kullanılabilir
- çok çeşitli ses olayları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-D gömme çıktısı, daha sonra belirli bir görev için az miktarda veri üzerinde eğitilebilen başka bir modelin girdi özellikleri olarak kullanılabilir. Bu, çok fazla etiketli veri gerektirmeden ve uçtan uca büyük bir modeli eğitmek zorunda kalmadan hızlı bir şekilde özelleştirilmiş ses sınıflandırıcıları oluşturmaya izin verir.
- sıcak bir başlangıç olarak: YAMNet model parametreleri, daha hızlı ince ayar ve model araştırmasına olanak tanıyan 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. Herhangi bir görev için, büyük olasılıkla göreve özgü verilerle bir kalibrasyon gerçekleştirmeniz gerekecektir, bu da sınıf başına uygun puan eşikleri ve ölçeklendirme atamanıza izin verir.
- YAMNet, milyonlarca YouTube videosu üzerinde eğitilmiştir ve bunlar çok çeşitli olsalar da, ortalama YouTube videosu ile herhangi bir görev için beklenen ses girişleri arasında hala bir alan uyuşmazlığı olabilir. YAMNet'i kurduğ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 üzere eğitilmiştir. Sınıfların tam listesi için model havuzundaki etiketler dosyasına bakın.
Orijinal sette olmayan sınıfları tanımak için bir modeli yeniden eğitmek için transfer öğrenimi olarak bilinen bir tekniği kullanabilirsiniz. Örneğin, modeli birden çok kuş şarkısını algılayacak şekilde yeniden eğitebilirsiniz. Bunu yapmak için, eğitmek istediğiniz her yeni etiket için bir dizi eğitim ses sistemine ihtiyacınız olacak. Önerilen yol, birkaç kod satırında özel veri kümesi kullanarak bir TensorFlow Lite modeli eğitme sürecini basitleştiren TensorFlow Lite Model Maker kitaplığını kullanmaktır. Gerekli eğitim verisi ve süresini azaltmak için aktarım öğrenimini kullanır. Transfer öğrenmenin bir örneği olarak ses tanıma için Transfer öğ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: