PHP(Hypertext Preprocessor)是一種廣泛應用的伺服器端腳本語言,通常用於開發 Web 應用程式。在許多 Web 應用程式中,語音合成和語音辨識是一個非常重要的功能,PHP 也提供了相應的工具和函式庫來實現這些功能。
一、語音合成
語音合成(Text-To-Speech,TTS)是將文字轉換為語音的過程。 PHP 中有許多函式庫和工具可以實現語音合成,以下介紹一些較常用的函式庫和工具。
Google Text-to-Speech API 是一種線上 API,可以將文字轉換為各種語音類型。使用此 API,需要先去 Google Cloud 上註冊帳號,並建立一個新的專案。在專案中啟用“Google Text-to-Speech API”,並下載“API 金鑰”,用於呼叫 API。
使用PHP 呼叫Google Text-to-Speech API 的程式碼範例如下:
$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);
Microsoft Speech SDK 是由微軟提供的一套用於語音辨識和語音合成的工具和函式庫。它支援多種語音合成引擎,包括微軟自家的引擎(Microsoft Speech Platform)和其他一些第三方引擎。
使用Microsoft Speech SDK 將文字轉換為語音的程式碼範例如下:
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);
二、語音辨識
語音辨識(Speech Recognition,SR)是將語音轉換為文本的過程。 PHP 中同樣有許多函式庫和工具可以實現語音識別,以下介紹一些比較常用的函式庫和工具。
Google Cloud Speech-to-Text API 是一種線上 API,可以將語音轉換為文字。使用此 API,需要先去 Google Cloud 上註冊帳號,並建立一個新的專案。在專案中啟用“Google Cloud Speech-to-Text API”,並下載“API 金鑰”,用於呼叫 API。
使用PHP 呼叫Google Cloud Speech-to-Text API 的程式碼範例如下:
$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 是一個在線語音辨識平台,可以將語音轉換為文字和其他資料。它的 API 相對於其他語音辨識 API 更加智能,可以識別意圖和實體。使用此 API,需要先去 Wit.ai 上註冊一個帳號,並建立一個新的應用程式。在應用程式中啟用“Speech API”,並獲得 API 金鑰和應用程式 ID。
使用PHP 呼叫Wit.ai Speech API 的程式碼範例如下:
$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; }
總結
透過使用上述工具和函式庫,可以輕鬆地在PHP 中實現語音合成和語音辨識的功能。它們可以幫助我們快速建立出更聰明而富有互動性的 Web 應用程序,是 Web 開發的重要工具之一。
以上是PHP中如何進行語音合成與語音辨識?的詳細內容。更多資訊請關注PHP中文網其他相關文章!