PHP code example of vikas5914 / fluidaudio

1. Go to this page and download the library: Download vikas5914/fluidaudio library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

vikas5914 / fluidaudio example snippets


use Vikas5914\Fluidaudio\Facades\FluidAudio;
use Vikas5914\Fluidaudio\Models\AsrModel;
use Vikas5914\Fluidaudio\Models\StreamingModel;

// Batch ASR: load models, then transcribe a file.
$init = FluidAudio::initializeAsr(['version' => AsrModel::MultilingualV3->value]);
// ... wait for ModelLoadProgress(status: 'ready', progress: 100) ...
$result = FluidAudio::transcribeFile('/path/to/audio.wav');
// ... wait for TranscriptionComplete / TranscriptionError ...

// Streaming: start the mic, stop to get the final transcript.
$stream = FluidAudio::startStreaming(['variant' => StreamingModel::Eou160ms->value]);
// ... StreamingStarted / StreamingUpdate(isFinal: false) ... ...
$stop = FluidAudio::stopStreaming();
// ... StreamingUpdate(isFinal: true) carries the final text ...

// Housekeeping
$available = FluidAudio::isAsrAvailable(); // bool
$info = FluidAudio::getSystemInfo();       // null off-device
$progress = FluidAudio::modelLoadProgress(); // last known download state, null off-device
FluidAudio::cancel($requestId);            // cancel one in-flight request
FluidAudio::cancel();                      // cancel everything (also stops streaming)
FluidAudio::cleanup();                     // release models and stop audio

use Native\Mobile\Attributes\OnNative;
use Vikas5914\Fluidaudio\Events\ModelLoadProgress;
use Vikas5914\Fluidaudio\Events\StreamingStarted;
use Vikas5914\Fluidaudio\Events\StreamingUpdate;
use Vikas5914\Fluidaudio\Events\TranscriptionComplete;
use Vikas5914\Fluidaudio\Events\TranscriptionError;

class Transcriber extends Component
{
    #[OnNative(ModelLoadProgress::class)]
    public function onProgress(string $status, int $progress, ?string $requestId = null, string $type = 'asr') {}

    #[OnNative(TranscriptionComplete::class)]
    public function onComplete(string $text, ?string $requestId = null) {}

    #[OnNative(StreamingStarted::class)]
    public function onStarted(?string $requestId = null) {}

    #[OnNative(StreamingUpdate::class)]
    public function onUpdate(string $text, string $volatile, string $confirmed, bool $isFinal, ?string $requestId = null) {}

    #[OnNative(TranscriptionError::class)]
    public function onError(string $message, ?string $requestId = null, ?string $code = null) {}
}

$catalog = FluidAudio::models();
// ['asr' => [['id' => 'v2', 'label' => 'English v2'], ['id' => 'v3', ...]],
//  'streaming' => [['id' => 'parakeet-eou-160ms', 'label' => '160 ms', 'latencyMs' => 160], ...]]

$progress = FluidAudio::modelLoadProgress();
// ['asr' => ['status' => 'downloading', 'progress' => 42, 'requestId' => '...'],
//  'streaming' => ['status' => 'idle', 'progress' => 0]]