ホームページ  >  記事  >  バックエンド開発  >  PHP で音声合成と音声認識を実行するにはどうすればよいですか?

PHP で音声合成と音声認識を実行するにはどうすればよいですか?

王林
王林オリジナル
2023-05-27 17:51:061585ブラウズ

PHP (ハイパーテキスト プリプロセッサ) は、Web アプリケーションの開発に広く使用されているサーバー側スクリプト言語です。多くの Web アプリケーションでは、音声合成と音声認識は非常に重要な機能であり、PHP はこれらの機能を実装するための対応するツールとライブラリも提供します。

1. 音声合成

Text-To-Speech (TTS) は、テキストを音声に変換するプロセスです。 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. 音声認識

音声認識 (音声認識、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 Key」をダウンロードします。

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で簡単に実装できる音声認識機能。これらは、よりインテリジェントでインタラクティブな Web アプリケーションを迅速に構築するのに役立ち、Web 開発の重要なツールの 1 つです。

以上がPHP で音声合成と音声認識を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。