ACRCloud ile Music Recognition Servisi

En son güncellendiği tarih: May 30


ACRCloud (The automatic content recognition) bir medya cihazında oynatılan veya bir medya dosyasında bulunan içeriği tanıma özelliği sunan bir API'dir.


Bu API ile ihtiyacınıza göre

  • Music Recognition

  • Broadcast Monitoring

  • Live Channel Detection

  • Audience Measurement servislerini projenize dahil edebilir ve daha hızlı çözüme ulaşabilirsiniz.


Bu Mobi'de ACR Cloud Music Recognize servisini kullanarak ACRCloud iOS sdk'sı ile bir uygulama geliştireceğiz. Bahsedeceğimiz bu servis yukarıdaki resimde basitçe gösterilen çalışma mantığı ve desteklediği cross, native ve Web API'ler ile aranılan bir müzik tanımlama servisidir. Siz de geliştirme yapmak istediğiniz diğer sdk'lara buradan kolayca ulaşabilirsiniz.


NOT: Tercihe bağlı olarak kendi mevcut ses/müzik/video dosyalarımızı kullanmak ya da 3rd party (Spotify, Deezer, Musixmacth vb.) uygulamaları uygulamamız ile entegre etmek istersek ACRCloud bize bu imkanı da sunuyor.


HEDEFİMİZ


Herhangi bir medya cihazında oynatılan içeriği bir search veya metin araması yapmadan uygulamayı açıp içerik hakkında kolayca detaylı bilgiye sahip olabilmek.







GELİŞTİRME


Geliştirmeye başlamak için iOS sdk'sı kaynak koduna buradan ulaşabilirsiniz. İndirdiğiniz ACRCloud-ios klasörü Objective-C ve Swift ile geliştirilen iki adet sdk'yı içermektedir. Biz demomuzu Swift ile mevcuttaki eksikleri gidererek ACRCloudDemoSwift klasörü altından devam ederek geliştireceğiz. Adım adım ilerleyecek olursak,

  • Uygulamayı ilk açtığımızda 10.2 kullanıyorsak "Unsupported Swift Version" hatası alabiliriz. Bu hatayı Build Settings -> Swift Compiler - Language -> Swift Language Version'u Swift4 seçerek düzeltebiliriz.

  • Uygulamayı çalıştırdığımızda cihazımızın mikrofonu kullanabilmesi için info.plist dosyasına Privacy - Microphone Usage Description property'sini ekliyoruz.

  • ViewController.swift dosyamızda accessKey, accessSecret ve host alanlarını ACRCloud' da oluşturduğumuz proje bilgileri ile doldurmamız gerekiyor. Hesap ve proje oluşturma adımlarına buradan ulaşabilirsiniz.

  • Keylerinizi oluşturup yukarıdaki ilgili alanları doldurduktan sonra uygulamada ilk butona basarak müzik aramasını başlattığımızda startRecognition fonksiyonu tetikleniyor ve ACRCloudRecognition üzerinden ACRCloud server ile haberleşmeye başlıyoruz.

  • Uygulamamız için gerekli 3 temel metodumuz var. Bu metotlar uygulamamızın background thread'inde çalışıyorlar. Bunlardan handleState() uygulama müzik tanıma işlemini tamamladığında bunu farkedip bize ön yüzde gösterilen "Durduruldu" metnini bastığımız fonksiyonumuz.

  • Diğer bir fonksiyonumuz handleVolume() ise uygulamamız için cihazımızdan mikrofon erişimini verdiğimizde bize müzik tanıma işlemi gerçekleşene kadar ortamdaki ses düzeyi bilgisini verir.

  • Uygulama ortamdaki ses bilgisini aldığında bu bilgiyi ACRCloud server'ın kullandığı fingerprinting algoritmalarıyla anlamlandırır ve sahip olduğu güçlü veritabanı sayesinde ulaşmak istediğimiz data ile ilgili detaylı bilgileri bir JSON objesi olarak bize döndürür.

  • handleResult() fonksiyonu JSON objemizin decode işlemini yaptığımız ve ön yüzde gösterdiğimiz "Şarkıcı, Albüm ve Şarkı Adı" bilgilerini doldurduğumuz ana fonksiyonumuzdur. Aşağıdaki kod, parse işlemlerini tamamlayan ve metadata'da tutulan Müzik dizisi altındaki bilgileri label'lara atadığımız kısmı gösteriyor.

  • Bu 3 ana metot ACRCloudConfig üzerinde çalıştıktan sonra ACRCloudRecognition üzerinden uygulamamızı ayağa kaldırıyoruz.

  • Başarılı bir şekilde response'muzu aldığımızdaki ekran görüntüsü aşağıdaki gibidir. Siz de kendinize özel tasarımları demomuz üzerinden oluşturabilirsiniz.

Demo Tasarımı

SONUÇ



Geliştirdiğimiz uygulamamıza ait videoya aşağıdan ulaşabilir ve kendi videolarınızı da bizimle paylaşabilirsiniz!



Github: https://github.com/tugcedulge/ACRCloudExample

#musicrecognition #ios #acrcloud #objectivec

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın