Whisper.php — автоматичне розпізнавання мови та транскрипція

Перекладено ШІ 1 Laravel News 02 червня, 2026

Відкрийте для себе можливості Whisper.php – потужної PHP-обгортки для моделі Whisper від OpenAI, яка спрощує процес розпізнавання мовлення. Чи готові ви дізнатися, як легко інтегрувати цю технологію у свої проекти та отримати точні транскрипції аудіо? Читайте далі!

Розпізнавання мови може бути складним, але за допомогою Whisper.php ви можете спростити цей процес. Whisper.php - це PHP-обгортка для whisper.cpp, C/C++ порту моделі Whisper від OpenAI. Цей пакет створений Кіріаном Обіквелу, який нещодавно випустив версію 1.0.0, що дозволяє проводити повністю локальну транскрибацію без використання API прямо у ваших проектах. Він пропонує:

  • API як високого, так і низького рівня
  • Автоматичне завантаження моделей
  • Підтримку різних аудіоформатів (наприклад, MP3, WAV, OGG, M4A)
  • Експорт у декількох форматах виходу (наприклад, TXT, SRT, VTT або CSV)
  • Підтримку зворотного виклику для потокової передачі та відстеження прогресу

Whisper.php вимагає встановлення та активації розширення FFI (Foreign Function Interface) у PHP, що дозволяє взаємодіяти з C-бібліотеками безпосередньо з PHP.

Припустимо, що ви активували FFI. Для встановлення Whisper.php вам потрібно виконати:

composer require codewithkyrian/whisper.php

Whisper.php пропонує як низькорівневе, так і високорівневе API. Низькорівневе API забезпечує детальний контроль над процесом транскрибації, що близький до оригінальної C-імплементації. Високорівневе API пропонує простіший, абстрактний інтерфейс для оптимізації робочого процесу.

У цій статті ми будемо використовувати високорівневе API.

use Codewithkyrian\Whisper\Whisper;
use function Codewithkyrian\Whisper\readAudio;
use function Codewithkyrian\Whisper\toTimestamp;
 
// Транскрибація аудіо
$whisper = Whisper::fromPretrained('tiny.en', baseDir: __DIR__.'/models');
$audio = readAudio(__DIR__.'/audio/laravel-news-227-sample.mp3');
$segments = $whisper->transcribe($audio, 4);
 
// Виведення даних транскрибованих сегментів
foreach ($segments as $segment) {
    echo toTimestamp($segment->startTimestamp) . ': ' . $segment->text . "\n";
}

Whisper.php використовує певні загальні бібліотеки, специфічні для платформ. Вони автоматично завантажуються під час першої ініціалізації моделі за допомогою Whisper::fromPretrained() і зберігаються у нашій директорії models. Перший запуск може зайняти трохи часу через завантаження, проте, як тільки бібліотеки кешуються, наступні запуски проходитимуть швидше. Підтримуються такі базові моделі Whisper: tiny.en, base, base.en та інші.

Функція readAudio() спрощує обробку аудіо, перетворюючи його на частоту 16кГц, що є компромісом між якістю та ефективністю. Це дозволяє зберегти основні частоти людської мови, зменшуючи обсяг оброблюваних даних.

Метод transcribe() бере перетворене аудіо і ділить його на сегменти з початковими та кінцевими мітками часу разом із текстом, який ми можемо вивести у потрібному форматі.

Для тестування ми використали нещодавній епізод подкасту Laravel News. Як видно, він не ідеальний, проте виконує свою задачу добре. Вихід міг виглядати приблизно так:

00:00:00,000:  Привіт усім, як справи? Ласкаво просимо до подкасту, епізод 227, сьогодні 26 листопада
00:00:05,040:  2024
00:00:06,400:  Радий, що ви з нами, і радий, що Майкл нарешті розібрався зі своїм мікрофоном...

Примітка: На момент написання підтримуються тільки Linux та macOS, а підтримка Windows все ще розробляється.

Дізнайтеся більше про цей пакет та перегляньте код на GitHub.

Популярні

Інше, що варто прочитати

20 Оновлено 01 червня, 2026

Створення MCP-серверів на PHP

Модельний контекстний протокол (MCP) відкриває нові горизонти в інтеграції AI-додатків з PHP. Дізнайтеся, як легко створити сервер, що відповідає MCP, та які можливості відкриваються для вашого проєкту

12 Оновлено 01 червня, 2026

Удосконалюйте свої проєкти Laravel за допомогою справжнього штучного інтелекту для кодування з Laravel Boost!

Готові підняти свій робочий процес у Laravel на новий рівень? У цій статті я розгляну Laravel Boost, інноваційний AI-допомічник для програмування, який зробить вашу розробку швидшою та продуктивнішою

11 Оновлено 01 червня, 2026

Управління доступом у Filament за допомогою плагіна Shield

Дізнайтеся, як пакет Filament Shield забезпечує управління доступом до ваших панелей, ресурсів і віджетів у Laravel. Ця стаття розкриває основні можливості пакету, включаючи просту установку та підтримку багатокористувацьких середовищ — не пропустіть!