>  기사  >  백엔드 개발  >  PHP에서 음성 합성 및 음성 인식을 수행하는 방법은 무엇입니까?

PHP에서 음성 합성 및 음성 인식을 수행하는 방법은 무엇입니까?

王林
王林원래의
2023-05-27 17:51:061559검색

PHP(Hypertext Preprocessor)는 웹 애플리케이션을 개발하는 데 일반적으로 사용되는 서버 측 스크립팅 언어로 널리 사용됩니다. 많은 웹 애플리케이션에서 음성 합성과 음성 인식은 매우 중요한 기능이며, PHP도 이러한 기능을 구현하기 위해 해당 도구와 라이브러리를 제공합니다.

1. 음성 합성

TTS(Text-To-Speech)는 텍스트를 음성으로 변환하는 프로세스입니다. PHP에는 음성 합성을 구현할 수 있는 많은 라이브러리와 도구가 있습니다. 다음은 보다 일반적으로 사용되는 라이브러리와 도구 중 일부입니다.

  1. Google Text-to-Speech API

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);
  1. Microsoft Speech SDK

Microsoft Speech SDK는 음성 인식 및 음성 합성을 위해 Microsoft에서 제공하는 도구 및 라이브러리 세트입니다. 이는 Microsoft 자체 엔진(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);

2. 음성 인식

음성 인식(Speech Recognition, SR)은 음성을 텍스트로 변환하는 과정입니다. PHP에는 음성 인식을 구현할 수 있는 많은 라이브러리와 도구가 있습니다. 다음은 보다 일반적으로 사용되는 라이브러리와 도구 중 일부입니다.

  1. Google Cloud Speech-to-Text API

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;
}
  1. Wit.ai

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에서 쉽게 구현할 수 있습니다. 이는 보다 지능적이고 대화형인 웹 애플리케이션을 신속하게 구축하는 데 도움이 되며 웹 개발을 위한 중요한 도구 중 하나입니다.

위 내용은 PHP에서 음성 합성 및 음성 인식을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.