以下是一个使用PHP和Google Cloud Speech API实现语音转文本的实例:
| 步骤 | 描述 | 代码 |
|---|---|---|
| 1 | 设置GoogleCloud项目并启用SpeechAPI | 登录GoogleCloudConsole,创建新项目,并启用SpeechAPI。 |
| 2 | 获取API密钥 | 在GoogleCloudConsole中,找到API密钥,并将其复制。 |
| 3 | 安装PHP库 | 使用Composer安装GoogleCloudSpeechAPIPHP库:`composerrequiregoogle/cloud-speech` |
| 4 | 配置API密钥 | 在PHP项目中创建一个`.env`文件,并将API密钥添加到其中:`GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/api-key.json` |
| 5 | 创建语音识别客户端 | 在PHP项目中创建一个`SpeechClient.php`文件,并添加以下代码: |
| ```php | ||
| namespaceGoogle""Cloud""Speech; | ||
| require_once__DIR__.'/vendor/autoload.php'; | ||
| $credentialsPath=getenv('GOOGLE_APPLICATION_CREDENTIALS'); | ||
| $speechClient=newSpeechClient([ | ||
| 'credentials'=>$credentialsPath, | ||
| ]); | ||
| ``` | ||
| 6 | 实现语音转文本功能 | 在PHP项目中创建一个`index.php`文件,并添加以下代码: |
| ```php | ||
| require_once__DIR__.'/vendor/autoload.php'; | ||
| require_once__DIR__.'/SpeechClient.php'; | ||
| useGoogle""Cloud""Speech""V1""RecognitionAudioConfig; | ||
| useGoogle""Cloud""Speech""V1""SpeechClient; | ||
| useGoogle""Cloud""Speech""V1""RecognitionConfig; | ||
| useGoogle""Cloud""Speech""V1""SpeechsynthesisClient; | ||
| useGoogle""Cloud""Speech""V1""SpeechContext; | ||
| useGoogle""Cloud""Speech""V1""SpeechContext""Phrases; | ||
| useGoogle""Cloud""Speech""V1""SpeechContext""SpeechWordInfo; | ||
| useGoogle""Cloud""Speech""V1""SpeechWordInfo""Word; | ||
| useGoogle""Cloud""Speech""V1""RecognitionResult; | ||
| //初始化语音识别客户端 | ||
| $speechClient=newSpeechClient(); | ||
| //读取音频文件 | ||
| $audio=$speechClient->createAudio('gs://your-bucket/your-audio-file.wav'); | ||
| //创建语音识别配置 | ||
| $config=newRecognitionConfig(); | ||
| $config->setEncoding(RecognitionConfig::ENCODING_LINEAR16); | ||
| $config->setLanguageCode('en-US'); | ||
| $config->setSampleRateHertz(16000); | ||
| //设置语音识别结果格式 | ||
| $config->setOutputAudioConfig(newOutputAudioConfig([ | ||
| 'audioEncoding'=>OutputAudioConfig::ENCODING_LINEAR16, | ||
| ])); | ||
| //进行语音识别 | ||
| $response=$speechClient->recognize($config,$audio); | ||
| //输出识别结果 | ||
| foreach($response->getResults()as$result){ | ||
| echo'Transcript:'.$result->getTranscript().PHP_EOL; | ||
| } | ||
| ?> | ||
| ``` |
运行`index.php`文件,您将看到语音识别结果输出到控制台。请确保替换`gs://your-bucket/your-audio-file.wav`为您存储在Google Cloud Storage中的音频文件的路径。