Shazam – dies ist eine Anwendung, die Musik und Lieder erkennen und identifizieren kann. Es ermöglicht Benutzern, den Titel, den Interpreten und das Album zu finden, indem Sie einfach ihr Smartphone über die Audioquelle bewegen. Wie kann ich eine Shazam-Funktion auf Android erstellen? In diesem Artikel informieren wir Sie über alle Phasen der Entwicklung und Implementierung dieser Funktion.
Das Erstellen einer Shazam-Funktion auf Android beginnt damit, zu bestimmen, welcher Algorithmus zum Erkennen von Audio verwendet wird. Viele Entwickler wählen einen Algorithmus Fast Fourier Transform (FFT), das das Zeitsignal in eine Frequenzdarstellung umwandelt. Dieser Algorithmus ist weit verbreitet und sehr effektiv für die Aufgabe der Musikerkennung.
Nachdem Sie den Algorithmus ausgewählt haben, müssen Sie eine mobile Anwendung auf dem Android, die mit dem Mikrofon des Geräts kommuniziert und den empfangenen Ton verarbeitet. Sie benötigen Zugriff auf das Mikrofon, denken Sie also daran, dem Manifest Ihrer App entsprechende Berechtigungen hinzuzufügen.
Shazam auf Android: Eine detaillierte Anleitung
Schritt 1: Vorbereitung des Projekts
Sie müssen zuerst Android Studio auf Ihrem Computer installieren, wenn Sie dies noch nicht getan haben. Erstellen Sie dann ein neues Projekt und geben Sie die entsprechenden Einstellungen an, einschließlich der minimalen Version des Android SDK und des SDK-Pfads.
Schritt 2: Hinzufügen einer Bibliothek zu Shazam
Um eine Shazam-Funktion zu erstellen, benötigen wir eine Bibliothek, die Audio verarbeitet und Songs identifiziert. Eine solche Bibliothek ist das "SoundHound SDK". Laden Sie die Bibliothek von der offiziellen SoundHound-Website herunter und fügen Sie sie Ihrem Projekt in Android Studio hinzu.
Schritt 3: Konfigurieren von Berechtigungen
Damit Shazam funktioniert, müssen Sie Berechtigungen zum Aufzeichnen von Audio und zum Zugriff auf das Mikrofon erteilen. Fügen Sie der AndroidManifest-Datei die folgenden Berechtigungen hinzu.xml:
Schritt 4: Implementieren der Shazam-Funktion
Lassen Sie uns nun beginnen, die Shazam-Funktion zu erstellen. Erstellen Sie eine neue Klasse "ShazamHelper" und fügen Sie den folgenden Code hinzu:
public class ShazamHelper
private SoundHoundSDK soundHoundSDK;
soundHoundSDK = new SoundHoundSDK();
public String identifySong(byte[] audioData)
String songName = soundHoundSDK.identify(audioData);
Schritt 5: Verwenden der Shazam-Funktion
Jetzt können Sie die Shazam-Funktion in Ihrer Anwendung verwenden. Aktivieren Sie die Audioaufzeichnungsfunktionalität und geben Sie dem Benutzer die Möglichkeit, die Shazam zu aktivieren, wenn sie den Titel eines Songs kennen möchten. Verwenden Sie dann die Klasse "ShazamHelper", um den Song anhand der Audiodaten zu identifizieren:
ShazamHelper shazamHelper = new ShazamHelper();
String songName = shazamHelper.identifySong(audioData);
Schritt 6: Verarbeitung von Shazam-Ergebnissen
Als Ergebnis des Aufrufs der Shazam-Funktion erhalten Sie den Titel des Songs oder null, wenn der Song nicht identifiziert werden kann. Sie können diese Informationen verwenden, um dem Benutzer die Ergebnisse anzuzeigen oder zusätzliche Aktionen auszuführen.
In diesem ausführlichen Tutorial haben wir untersucht, wie man eine Shazam-Funktion auf Android erstellt. Ich hoffe, es hilft Ihnen, diese praktische Funktionalität zu Ihrer App hinzuzufügen!
Installieren und Konfigurieren von Android Studio
Schritt 1: Android Studio herunterladen
Gehen Sie zur offiziellen Android Studio-Website und klicken Sie auf die Schaltfläche Download. Wählen Sie das Betriebssystem aus, das Sie verwenden, und starten Sie den Download. Wenn der Download abgeschlossen ist, öffnen Sie die heruntergeladene Datei und folgen Sie den Installationsanweisungen.
Schritt 2: Installieren von Android Studio
Starten Sie die Android Studio-Installationsdatei und folgen Sie den Anweisungen auf dem Bildschirm. Wählen Sie den Pfad aus, in dem Sie Android Studio installieren möchten, und warten Sie, bis der Installationsprozess abgeschlossen ist. Starten Sie nach Abschluss der Installation Android Studio.
Schritt 3: Android Studio einrichten
Wenn Sie Android Studio zum ersten Mal starten, werden Sie möglicherweise aufgefordert, einige zusätzliche Komponenten wie SDKs und Emulatoren zu installieren. Es wird empfohlen, diese Komponenten zu installieren, damit Android Studio reibungslos funktioniert. Warten Sie, bis der Installationsvorgang abgeschlossen ist.
Hinweis: Sie können die erforderlichen Komponenten auch jederzeit über das Menü "SDK-Manager" in Android Studio herunterladen und installieren.
Nachdem Sie die Einrichtung von Android Studio abgeschlossen haben, können Sie mit der Entwicklung von Android-Apps beginnen! Sie können jetzt neue Projekte erstellen, den Quellcode bearbeiten und Emulatoren ausführen, um Ihre Anwendungen zu testen.
In diesem Abschnitt haben wir uns mit dem Installationsprozess und der Konfiguration von Android Studio befasst. Sie können mit dem nächsten Abschnitt fortfahren, um mehr über die Erstellung der Shazam-Funktion auf Android zu erfahren.
Mikrofon aktivieren und Audio aufnehmen
Um die Shazam-Funktion zu erstellen, müssen Sie das Mikrofon aktivieren und Audio aufzeichnen. In Android ist es möglich, diese Schritte mit der MediaRecorder-Klasse auszuführen.
Bevor Sie mit der Audioaufnahme beginnen, müssen Sie die Erlaubnis zur Verwendung des Mikrofons einholen. Fügen Sie dazu der AndroidManifest-Manifest-Datei die folgende Codezeile hinzu.xml innerhalb eines Tags :
Nachdem Sie die Erlaubnis erhalten haben, können Sie das Mikrofon aktivieren und mit der Audioaufnahme beginnen. Erstellen Sie eine neue Instanz der MediaRecorder-Klasse, und konfigurieren Sie deren Parameter:
// Создание экземпляра MediaRecorderMediaRecorder mediaRecorder = new MediaRecorder();// Установка источника аудио (микрофона)mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// Установка выходного формата аудиоmediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);// Установка кодека аудиоmediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);// Установка пути к файлу для сохранения записанного аудиоmediaRecorder.setOutputFile(outputFile);
Nachdem Sie die Einstellungen konfiguriert haben, starten Sie die Audioaufnahme:
// Подготовка MediaRecorder для записиmediaRecorder.prepare();// Начало записи аудиоmediaRecorder.start();
Nachdem die Audioaufnahme abgeschlossen ist, müssen Sie Ressourcen freigeben. Rufen Sie die Methoden stop(), release() und SetNull() auf, um das Schreiben zu beenden und die Ressourcen freizugeben:
// Остановка записи аудиоmediaRecorder.stop();// Освобождение ресурсов MediaRecordermediaRecorder.release();// Обнуление объекта MediaRecordermediaRecorder = null;
Jetzt wissen Sie, wie Sie das Mikrofon aktivieren und Audio in Android aufnehmen können. Diese Schritte stellen die Grundlage für die Erstellung einer Shazam-Funktion dar, mit der Ihre Anwendung Audiodateien erkennen kann.
Verarbeiten von Audioaufzeichnungen und Erstellen von Audiodruck
Sie können die AcousticID-Bibliothek verwenden, um Audioaufnahmen zu verarbeiten und einen Audiodruck zu erstellen. Sie müssen zuerst eine Audioaufnahme im WAV- oder MP3-Format herunterladen. Anschließend können Sie mithilfe der Bibliothek eine Audiodatei analysieren und einen Audioprint erstellen.
Sie können Parameter wie die Länge des Audiofragments, die Abtastrate und die Anzahl der Bits pro Sample verwenden, um einen Audiodruck zu erstellen. Es wird empfohlen, längere Fragmente und eine höhere Abtastrate zu verwenden, um den Audioprint genauer zu erstellen.
Sie können eine Tabelle mit den Amplitudenwerten für die einzelnen Teile der Audiodatei verwenden, um einen Audiodruck zu erstellen. Sie können dann Vergleichs- und Identitätsalgorithmen verwenden, um den Audiodruck einer Songdatenbank zuzuordnen.
Nachdem Sie den Audiodruck erstellt haben, können Sie mit der Weiterverarbeitung und dem Vergleich mit anderen Titeln beginnen. Dazu müssen Sie die Songdatenbank herunterladen und die passenden Algorithmen verwenden, um den am ähnlichsten aussehenden Audioprint zu finden.
Die Verwendung von Audiodrucken zum Erstellen einer Shazam-Funktion auf Android kann schwierig sein und erfordert bestimmte Fähigkeiten in der Audioverarbeitung und bei Vergleichsalgorithmen. Mit den entsprechenden Bibliotheken und Werkzeugen können Sie jedoch eine effektive Shazam-Funktion für Ihre Android-Anwendung erstellen.
| Vorteile der Erstellung der Shazam-Funktion auf Android: |
|---|
| 1. Möglichkeit, einen Song anhand seines Audioabdrucks zu identifizieren. |
| 2. Die Fähigkeit, Songs schnell in der Datenbank zu suchen und zu vergleichen. |
| 3. Benutzerfreundlichkeit für mobile Benutzer. |
Vergleichen von Audioprints mit einer Datenbank
Zum Vergleich von Audiodruck mit einer Datenbank wird normalerweise ein Abgleichsalgorithmus verwendet, der Audiosignale vergleicht und den Grad ihrer Ähnlichkeit bestimmt. Daher enthält die Datenbank in der Regel vorgefertigte Audiodrucke und vorkompilierte Trackinformationen.
| Parameter | Bedeutung |
|---|---|
| Name des Liedes | . |
| Vollzieher | . |
| Ein Album | . |
| Anfangszeit | . |
| Endzeit | . |
Das System vergleicht dann den für einen Track auf einem Android-Gerät erstellten Audiodruck mit jedem Audiodruck in der Datenbank. Als Ergebnis der Zuordnung ermittelt der Algorithmus den besten übereinstimmenden Audioprint und gibt die zugehörigen Track-Informationen zurück.
Es ist jedoch wichtig zu berücksichtigen, dass der Vergleich von Audiodrucken Auswirkungen auf die Qualität und Genauigkeit der Shazam-Funktion haben kann. Schlechte Qualität der Audioausdrucke oder das Vorhandensein von Rauschen im Originalaudiosignal können zu falschen Ergebnissen führen oder die Spur nicht identifizieren können.
Anzeigen von Ergebnissen und Erstellen einer Schnittstelle
Um die Ergebnisse des Shazam-Algorithmus anzuzeigen und eine Benutzeroberfläche zu erstellen, benötigen wir verschiedene Elemente wie Textfelder, Schaltflächen und Bilder.
Sie können beispielsweise ein Textfeld erstellen, in dem die von Shazam erkannten Daten angezeigt werden:
Sie können auch die Schaltfläche verwenden, auf die die Shazam ausgeführt wird:
Und auch das Bild, das angezeigt wird, wenn die Musik erfolgreich erkannt wird:
Direkt im Java-Code müssen Sie Verweise auf die erstellten Schnittstellenelemente definieren und ihnen die erforderliche Funktionalität zuweisen:
TextView resultTextView = findViewById(R.id.resultTextView);Button shazamButton = findViewById(R.id.shazamButton);ImageView successImageView = findViewById(R.id.successImageView);shazamButton.setOnClickListener(new View.OnClickListener() >);
So können Sie durch die Erstellung verschiedener UI-Komponenten und die Verknüpfung mit der Funktionalität des Shazam-Algorithmus eine vollwertige Musikerkennungsanwendung auf der Android-Plattform implementieren.