Maison >développement back-end >tutoriel php >Comment réaliser une synthèse vocale et une reconnaissance vocale en PHP ?
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.
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);
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.
$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; }
$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; }SummaryEn 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!