Maison >développement back-end >tutoriel php >Comment réaliser une synthèse vocale et une reconnaissance vocale en PHP ?

Comment réaliser une synthèse vocale et une reconnaissance vocale en PHP ?

王林
王林original
2023-05-27 17:51:061630parcourir

PHP (Hypertext Preprocessor) est un langage de script côté serveur largement utilisé, couramment utilisé pour développer des applications Web. Dans de nombreuses applications Web, la synthèse vocale et la reconnaissance vocale constituent une fonction très importante, et PHP fournit également les outils et bibliothèques correspondants pour implémenter ces fonctions.

1. La synthèse vocale

Text-To-Speech (TTS) est le processus de conversion de texte en parole. Il existe de nombreuses bibliothèques et outils en PHP qui peuvent implémenter la synthèse vocale. Voici quelques-unes des bibliothèques et outils les plus couramment utilisés.

  1. Google Text-to-Speech API

Google Text-to-Speech API est une API en ligne qui peut convertir du texte en différents types de voix . Pour utiliser cette API, vous devez d'abord créer un compte sur Google Cloud et créer un nouveau projet. Activez « l'API Google Text-to-Speech » dans votre projet et téléchargez la « clé API » pour appeler l'API.

L'exemple de code pour appeler l'API Google Text-to-Speech à l'aide de PHP est le suivant :

$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
#🎜🎜 #MicrosoftSpeech SDK est un ensemble d'outils et de bibliothèques de reconnaissance vocale et de synthèse vocale fournis par Microsoft. Il prend en charge une variété de moteurs de synthèse vocale, y compris le propre moteur de Microsoft (Microsoft Speech Platform) et certains autres moteurs tiers.

L'exemple de code pour convertir du texte en parole à l'aide du SDK Microsoft Speech est le suivant :

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. Reconnaissance vocale

Reconnaissance vocale (SR ) est le processus de conversion de la parole en texte. Il existe également de nombreuses bibliothèques et outils en PHP qui peuvent implémenter la reconnaissance vocale. Voici quelques-unes des bibliothèques et outils les plus couramment utilisés.

    API Google Cloud Speech-to-Text
Google Cloud Speech-to-Text API est une API en ligne qui peut convertir la parole en texte . Pour utiliser cette API, vous devez d'abord créer un compte sur Google Cloud et créer un nouveau projet. Activez « Google Cloud Speech-to-Text API » dans le projet et téléchargez la « Clé API » pour appeler l'API.

L'exemple de code pour appeler l'API Google Cloud Speech-to-Text à l'aide de PHP est le suivant :

$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;
}

    Wit.ai
  1. #🎜🎜 ##🎜 🎜 #Wit.ai est une plateforme de reconnaissance vocale en ligne qui convertit la parole en texte et autres données. Son API est plus intelligente que les autres API de reconnaissance vocale et peut reconnaître les intentions et les entités. Pour utiliser cette API, vous devez d'abord créer un compte sur Wit.ai et créer une nouvelle application. Activez l'API Speech dans votre application et obtenez une clé API et un ID d'application.
L'exemple de code pour appeler l'API Wit.ai Speech à l'aide de PHP est le suivant :

$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;
}

Summary

En utilisant les outils et bibliothèques ci-dessus, vous pouvez facilement implémenter des fonctions de synthèse vocale et de reconnaissance vocale en PHP. Ils peuvent nous aider à créer rapidement des applications Web plus intelligentes et interactives et constituent l'un des outils importants pour le développement Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn