Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melakukan sintesis pertuturan dan pengecaman pertuturan dalam PHP?

Bagaimana untuk melakukan sintesis pertuturan dan pengecaman pertuturan dalam PHP?

王林
王林asal
2023-05-27 17:51:061562semak imbas

PHP (Hypertext Preprocessor) ialah bahasa skrip sebelah pelayan yang digunakan secara meluas yang biasa digunakan untuk membangunkan aplikasi web. Dalam kebanyakan aplikasi web, sintesis pertuturan dan pengecaman pertuturan merupakan fungsi yang sangat penting, dan PHP juga menyediakan alatan dan perpustakaan yang sepadan untuk melaksanakan fungsi ini.

1. Sintesis pertuturan

Text-To-Speech (TTS) ialah proses menukar teks kepada pertuturan. Terdapat banyak perpustakaan dan alatan dalam PHP yang boleh melaksanakan sintesis pertuturan Berikut ialah beberapa perpustakaan dan alatan yang lebih biasa digunakan.

  1. Google Text-to-Speech API

Google Text-to-Speech API ialah API dalam talian yang boleh menukar teks kepada pelbagai jenis pertuturan. Untuk menggunakan API ini, anda perlu mendaftar akaun di Google Cloud dahulu dan membuat projek baharu. Dayakan "Google Text-to-Speech API" dalam projek anda dan muat turun "API Key" untuk memanggil API.

Contoh kod untuk memanggil Google Text-to-Speech API menggunakan PHP adalah seperti berikut:

$text = "Hello, world.";
$url = "https://texttospeech.googleapis.com/v1/text:synthesize?key=[API_KEY]";
$data = array(
    "input" => array(
        "text" => $text
    ),
    "voice" => array(
        "languageCode" => "en-US",
        "name" => "en-US-Wavenet-D"
    ),
    "audioConfig" => array(
        "audioEncoding" => "MP3"
    )
);
$json = json_encode($data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    "Content-Type: application/json"
));
$result = curl_exec($curl);
curl_close($curl);

file_put_contents("output.mp3", $result);
  1. Microsoft Speech SDK

Microsoft Speech SDK ialah disediakan oleh Microsoft Satu set alat dan perpustakaan untuk pengecaman pertuturan dan sintesis pertuturan. Ia menyokong pelbagai enjin sintesis pertuturan, termasuk enjin Microsoft sendiri (Microsoft Speech Platform) dan beberapa enjin pihak ketiga yang lain.

Contoh kod untuk menukar teks kepada pertuturan menggunakan Microsoft Speech SDK adalah seperti berikut:

require 'vendor/autoload.php';

use MicrosoftCognitiveServicesSpeechSpeechConfig;
use MicrosoftCognitiveServicesSpeechSpeechSynthesizer;

// Replace with your own subscription key and region identifier
$key = "YourSubscriptionKey";
$region = "YourServiceRegion";

// Configure the synthesizer object
$speech_config = SpeechConfig::fromSubscription($key, $region);
$synthesizer = new SpeechSynthesizer($speech_config);

// Synthesize speech from text
$text = "Hello, world.";
$file_name = "output.wav";
$results = $synthesizer->speakText($text, $file_name);

// Output the speech file
header('Content-type: audio/wav');
echo file_get_contents($file_name);

2 Pengecaman pertuturan

Pengecaman pertuturan (Pengecaman Pertuturan, SR) adalah untuk menukar. ucapan ke dalam proses teks. Terdapat juga banyak perpustakaan dan alatan dalam PHP yang boleh melaksanakan pengecaman pertuturan Berikut ialah beberapa perpustakaan dan alatan yang lebih biasa digunakan.

  1. API Ucapan-ke-Teks Awan Google

API Ucapan-ke-Teks Awan Google ialah API dalam talian yang menukar pertuturan kepada teks. Untuk menggunakan API ini, anda perlu mendaftar akaun di Google Cloud dahulu dan membuat projek baharu. Dayakan "Google Cloud Speech-to-Text API" dalam projek dan muat turun "API Key" untuk memanggil API.

Contoh kod untuk memanggil API Google Cloud Speech-to-Text menggunakan PHP adalah seperti berikut:

$file_name = "audio.wav";
$file_content = file_get_contents($file_name);

$url = "https://speech.googleapis.com/v1/speech:recognize?key=[API_KEY]";
$data = array(
    "config" => array(
        "encoding" => "LINEAR16",
        "sampleRateHertz" => 16000,
        "languageCode" => "en-US"
    ),
    "audio" => array(
        "content" => base64_encode($file_content)
    )
);
$json = json_encode($data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    "Content-Type: application/json"
));
$result = curl_exec($curl);
curl_close($curl);

$obj = json_decode($result);
if (isset($obj->results)) {
    $text = $obj->results[0]->alternatives[0]->transcript;
    echo $text;
}
  1. Wit.ai

Wit.ai ialah platform pengecaman pertuturan dalam talian yang menukar pertuturan kepada teks dan data lain. APInya lebih pintar daripada API pengecaman pertuturan lain dan boleh mengecam niat dan entiti. Untuk menggunakan API ini, anda perlu terlebih dahulu mendaftar akaun di Wit.ai dan mencipta aplikasi baharu. Dayakan API Pertuturan dalam apl anda dan dapatkan kunci API dan ID apl.

Contoh kod untuk memanggil Wit.ai Speech API menggunakan PHP adalah seperti berikut:

$file_name = "audio.wav";
$file_content = file_get_contents($file_name);

$url = "https://api.wit.ai/speech?v=20211006";
$data = $file_content;

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    "Authorization: Bearer [API_KEY]",
    "Content-Type: audio/wav"
));
$result = curl_exec($curl);
curl_close($curl);

$obj = json_decode($result);
if (isset($obj->_text)) {
    $text = $obj->_text;
    echo $text;
}

Ringkasan

Dengan menggunakan alat dan perpustakaan di atas, sintesis pertuturan dan sintesis pertuturan boleh mudah dilaksanakan dalam fungsi pengecaman Suara PHP. Mereka boleh membantu kami membina aplikasi web yang lebih pintar dan interaktif dengan cepat dan merupakan salah satu alat penting untuk pembangunan web.

Atas ialah kandungan terperinci Bagaimana untuk melakukan sintesis pertuturan dan pengecaman pertuturan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn