Přejít na hlavní obsah

Jak vytvořit funkci Shazam na Androidu: podrobný průvodce

Shazam - je to aplikace, která dokáže rozpoznat a identifikovat hudbu a skladby. Umožňuje uživatelům najít název skladby, interpreta a alba pouhým přejetím smartphonu na zdroj zvuku. Jak tedy vytvořit funkci Shazam na Androidu? V tomto článku vám řekneme o všech fázích vývoje a implementace této funkce.

Vytvoření funkce Shazam na Androidu začíná určením, který algoritmus bude použit k rozpoznání zvuku. Mnoho vývojářů volí algoritmus Fast Fourier Transform (FFT), který převádí časový signál na frekvenční zobrazení. Tento algoritmus je široce používaný a poměrně účinný pro úkol rozpoznávání hudby.

Po výběru algoritmu je nutné vytvořit mobilní aplikaci na Android, který bude komunikovat s mikrofonem zařízení a zpracovávat výsledný zvuk. Budete potřebovat přístup k mikrofonu, takže nezapomeňte přidat příslušná oprávnění do manifestu vaší aplikace.

Shazam na Androidu: podrobný průvodce

Krok 1: Příprava projektu

Nejprve budete muset nainstalovat Android Studio do počítače, pokud jste tak ještě neučinili. Poté vytvořte nový projekt a zadejte příslušná nastavení, včetně minimální verze Android SDK a cesty k SDK.

Krok 2: přidání knihovny pro Shazam

K vytvoření funkce Shazam budeme potřebovat knihovnu, která zpracovává zvuk a identifikuje skladby. Jednou z takových knihoven je"SoundHound SDK". Stáhněte si knihovnu z oficiálních stránek SoundHound a přidejte ji do svého projektu v Android Studio.

Krok 3: konfigurace oprávnění

Pro práci Shazamu je nutné udělit oprávnění k nahrávání zvuku a přístupu k mikrofonu. Přidejte následující oprávnění do souboru AndroidManifest.xml:

Krok 4: implementace funkce Shazam

Nyní se pustíme do budování funkce Shazam. Vytvořte novou třídu "ShazamHelper" a přidejte do ní následující kód:

public class ShazamHelper

private SoundHoundSDK soundHoundSDK;

soundHoundSDK = new SoundHoundSDK();

public String identifySong(byte[] audioData)

String songName = soundHoundSDK.identify(audioData);

Krok 5: Použití funkce Shazam

Nyní můžete ve své aplikaci použít funkci Shazam. Povolte funkci nahrávání zvuku a poskytněte uživateli možnost aktivovat Shazam, když chtějí znát název skladby. Poté použijte třídu "ShazamHelper" k identifikaci skladby založené na audio datech:

ShazamHelper shazamHelper = new ShazamHelper();

String songName = shazamHelper.identifySong(audioData);

Krok 6: Zpracování výsledků Shazamu

Vyvoláním funkce Shazam získáte název skladby nebo null, pokud skladbu nelze identifikovat. Tyto informace můžete použít k zobrazení výsledků uživateli nebo k provádění dalších akcí.

V tomto podrobném tutoriálu jsme se podívali na to, jak vytvořit funkci Shazam na Androidu. Doufejme, že vám to pomůže přidat tuto šikovnou funkci do vaší aplikace!

Instalace a konfigurace Android Studio

Krok 1: Stažení Android Studio

Přejděte na oficiální web Android Studio a klikněte na tlačítko Stáhnout. Vyberte operační systém, který používáte, a začněte spouštět. Po dokončení stahování otevřete stažený soubor a postupujte podle pokynů k instalaci.

Krok 2: Instalace Android Studio

Spusťte instalační soubor Android Studio a postupujte podle pokynů na obrazovce. Vyberte cestu, kam chcete nainstalovat Android Studio, a počkejte, až proces instalace skončí. Po dokončení instalace spusťte Android Studio.

Krok 3: Nastavení Android Studio

Při prvním spuštění Android Studio můžete být vyzváni k instalaci některých dalších komponent, jako jsou SDK a emulátory. Doporučuje se nainstalovat tyto komponenty pro hladký chod Android Studio. Počkejte, až proces instalace skončí.

Poznámka: požadované komponenty si také můžete kdykoli stáhnout a nainstalovat v nabídce SDK Manager uvnitř Android Studio.

Po dokončení nastavení Android Studio budete připraveni začít vyvíjet aplikace pro Android! Nyní můžete vytvářet nové projekty, upravovat zdrojový kód a spouštět emulátory pro testování aplikací.

V této části jsme se podívali na proces instalace a nastavení Android Studio. Můžete přejít do další části a dozvědět se více o vytváření funkce Shazam v systému Android.

Aktivace mikrofonu a nahrávání zvuku

Chcete-li vytvořit funkci Shazam, musíte aktivovat mikrofon a nahrávat zvuk. V systému Android existuje možnost provádět tyto akce pomocí třídy MediaRecorder.

Před zahájením nahrávání zvuku je nutné získat povolení k použití mikrofonu. Chcete-li to provést, přidejte následující řádek kódu do souboru manifestu AndroidManifest.xml uvnitř značky :

Po získání oprávnění můžete aktivovat mikrofon a začít nahrávat zvuk. Vytvořte novou instanci třídy MediaRecorder a nakonfigurujte její nastavení:

// Создание экземпляра MediaRecorderMediaRecorder mediaRecorder = new MediaRecorder();// Установка источника аудио (микрофона)mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// Установка выходного формата аудиоmediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);// Установка кодека аудиоmediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);// Установка пути к файлу для сохранения записанного аудиоmediaRecorder.setOutputFile(outputFile);

Po nastavení nastavení spusťte nahrávání zvuku:

// Подготовка MediaRecorder для записиmediaRecorder.prepare();// Начало записи аудиоmediaRecorder.start();

Po dokončení nahrávání zvuku je nutné uvolnit zdroje. Vyzvěte metody stop (), release () a setNull () k dokončení nahrávání a uvolnění zdrojů:

// Остановка записи аудиоmediaRecorder.stop();// Освобождение ресурсов MediaRecordermediaRecorder.release();// Обнуление объекта MediaRecordermediaRecorder = null;

Nyní víte, jak aktivovat mikrofon a nahrávat zvuk v systému Android. Tyto kroky jsou základem pro vytvoření funkce Shazam, která umožní vaší aplikaci rozpoznat zvukové soubory.

Zpracování zvukového záznamu a vytvoření zvukového tisku

Pro zpracování zvukového záznamu a vytvoření zvukového tisku lze použít knihovnu AcousticID. Nejprve si musíte stáhnout zvukový záznam ve formátu wav nebo mp3. Pomocí knihovny je pak možné provést analýzu zvukového souboru a vytvořit jeho zvukový otisk.

K vytvoření zvukového tisku lze použít parametry, jako je délka zvukového fragmentu, vzorkovací frekvence a počet bitů na sampl. Pro přesnější vytvoření zvukového tisku se doporučuje použít delší fragmenty a vyšší vzorkovací frekvenci.

K vytvoření zvukového tisku lze použít tabulku hodnot amplitud zvukového spektra pro každý kus zvukového souboru. Algoritmy pro porovnávání a identifikaci pak lze použít k porovnání zvukového tisku s databází skladeb.

Po vytvoření zvukového tisku je možné přistoupit k dalšímu zpracování a srovnání s jinými skladbami. Chcete-li to provést, musíte si stáhnout databázi skladeb a pomocí mapovacích algoritmů vyhledat nejpodobnější zvukový tisk.

Použití zvukových tisků k vytvoření funkce Shazam na Androidu může být složité a vyžaduje určité dovednosti v oblasti zpracování zvuku a srovnávacích algoritmů. Pomocí příslušných knihoven a nástrojů je však možné vytvořit efektivní funkci Shazam pro vaši aplikaci Android.

Výhody vytváření funkce Shazam na Androidu:
1. Možnost identifikace skladby podle jejího zvukového tisku.
2. Možnost rychlého vyhledávání a porovnávání skladeb v databázi.
3. Použitelnost pro uživatele mobilních zařízení.

Porovnání zvukového tisku s databází

Pro srovnání zvukového tisku s databází se obvykle používá mapovací algoritmus, který porovnává zvukové signály a určuje stupeň jejich podobnosti. Tento proces vyžaduje velké výpočetní zdroje, takže databáze obvykle obsahuje předem vytvořené zvukové tisky a předkompilované informace o stopách.

ParametrHodnota
Název písně.
Interpret.
Album.
Čas zahájení.
Čas ukončení.

Systém pak porovnává zvukový otisk vytvořený pro stopu na zařízení Android s každým zvukovým tiskem v databázi. V důsledku mapování algoritmus určí nejlepší shodný zvukový otisk a vrátí související informace o trati.

Je však důležité vzít v úvahu, že srovnání zvukových tisků může mít vliv na kvalitu a přesnost funkce Shazam. Špatná kvalita zvukového tisku nebo přítomnost šumu v původním zvukovém signálu může vést k nesprávným výsledkům nebo nemožnosti identifikovat stopu.

Zobrazení výsledků a vytvoření rozhraní

K zobrazení výsledků algoritmu Shazam a vytvoření uživatelského rozhraní budeme potřebovat různé prvky, jako jsou textová pole, tlačítka a obrázky.

Můžete například vytvořit textové pole, které zobrazí data, která Shazam rozpoznal:

Kromě toho lze použít tlačítko, po kterém bude Shazam spuštěn:

A také obrázek, který se zobrazí při úspěšném rozpoznávání hudby:

Přímo v kódu Java je nutné identifikovat odkazy na vytvořené prvky rozhraní a přiřadit jim potřebnou funkčnost:

TextView resultTextView = findViewById(R.id.resultTextView);Button shazamButton = findViewById(R.id.shazamButton);ImageView successImageView = findViewById(R.id.successImageView);shazamButton.setOnClickListener(new View.OnClickListener()  >);

Vytvořením různých komponent uživatelského rozhraní a jejich propojením s funkčností algoritmu tak Shazam může implementovat plnohodnotnou aplikaci pro rozpoznávání hudby na platformě Android.