PHP wrapper for command-line fingerprint generator – fpcalc

PHP wrapper for command-line fingerprint generator – fpcalc

README

Software License
Build Status

This package is a wrapper for the fpcalc command-line tool.

Installation

First you need to get installed fpcalc on your system.

OS X

brew install chromaprint

Ubuntu

apt-get install libchromaprint-tools

Arch Linux

pacman -Sy chromaprint

Or you can get the latest version from AcoustId site

Than you just need to require this package via Composer

$ composer require mrfeathers/php-fpcalc

Usage

Usage is pretty simple. First you create a FpcalcProcess using factory class.

$factory = new FpcalcFactory();
$fpcalcProcess = $factory->create();

Than just call generateFingerPrint with array of file paths (or web stream uri – more info)

$result = $fpcalcProcess->generateFingerPrint(['myfile.mp3']);

//or you can generate fingerprints for more than one file
$result = $fpcalcProcess->generateFingerPrint(['myfile.mp3', 'mysecondfile.mp3']);


//using online stream radio
$result = $fpcalcProcess->generateFingerPrint(['http://icecast2.play.cz/radio1.mp3']);

As a result you’ll get output string with generated fingerprint or fingerprints.

You’re able to set some options:

  • format – input format name
  • algorithm – algorithm method (default 2). Available since fpcalc version 1.4.3
  • rate – sample rate of the input
  • channels – number of channels in the input audio
  • length – restricts the duration of the processed input audio (default 120, in seconds)
  • chunk – splits the input audio into chunks of given duration (in seconds)
  • overlap – overlap the chunks slightly to make sure audio on the edge id fingeprinted
  • ts – output UNIX timestamps for chunked results, useful when fingerprinting real-time audio stream
  • raw – output fingerprints in the uncompressed format
  • outputFormat – format of result output. Available: json, text, plain

Sometimes fingerprint generation can be a long process, sou you can set the process timeout using setTimeout method (default is 60 seconds).

Feel free to open an issue in case of bugs or improvement requests!

Source

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *