Microsoft Azure——文本转语音(TTS) REST API 使用教程

本文提供了一个Microsoft Azure文本转语音(TTS) REST API的使用教程。从注册Azure账号、获取终结点和密钥,到下载并修改Python示例代码,详细介绍了如何调用API将文本转换为wav格式的音频。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近的工作需要用到文本转语音(Text-to-Speech, TTS),故简单地研究了现有的技术,在此与大家分享。

微软、谷歌、科大讯飞都发布了TTS的相关工具。微软在Azure上,开放了API和SDK(https://azure.microsoft.com/zh-cn/services/cognitive-services/text-to-speech/),下面将着重介绍API如何使用。谷歌同样发布了TTS产品(https://cloud.google.com/text-to-speech/,需要“科学上网”方能访问),其属于Google Cloud的一部分,所以想要免费体验或购买,都需要注册Google Cloud。而注册时,一定要绑定一张Visa或万事达信用卡才能成功完成,对于国内用户,这是极不友好的。科大讯飞的产品(https://www.xfyun.cn/doccenter/tts)在语音界有很大的名声,尤其是汉语、方言的生成,是讯飞的一大亮点。


Azure上,语音部分的文档写的较为详细,包含各种功能,如TTS API,TTS SDK,自定义语音模型进行文本转语音等。但是没有整体的、提纲挈领般的介绍,看完文档极有可能仍然不知如何下手。本文将一步步地介绍,如何从0开始使用Azure TTS API(以后有时间,再补充SDK的使用方法)。我们希望实现的效果是,输入一段文本,调用API后,返回给我们一段wav格式的音频,播放后,即为之前输入的文本。

  • Step1:注册Microsoft Azure账号

首先进入https://azure.microsoft.com/zh-cn/services/cognitive-services/text-to-speech/。如下图所示,点击“试用 文本到语音转换”,试用或者注册Azure。

 

  • Step2:得到终结点和密钥

注册完成后,在

PHP本身并不直接支持微软Azure文字语音功能,但你可以通过AzureAPI和服务来集成这种功能。在PHP中,你需要使用Azure SDK for PHP,它提供了一个方便的客户端库来调用AzureText-to-Speech (TTS)服务,比如Microsoft Cognitive Services Text-to-Speech API。 首先,你需要在Azure门户上创建一个Text-to-Speech资源,并获取访问密钥。然后,在PHP代码中,可以按照以下步骤操作: 1. 安装Azure SDK依赖: ```sh composer require azure/azure-cosmos ``` 2. 导入必要的服务和配置: ```php use Azure\Speech\Conversation\AudioConfig; use Azure\Speech\Conversation\Speech synthesis\VoiceGender; use Azure\Speech\Conversation\SpeechToTextClientBuilder; // 替换为你的订阅密钥和终结点URL $speechToTextClient = SpeechToTextClientBuilder::create() ->withSubscription('your-subscription-key') ->withServiceUrl('https://<your-speech-service-endpoint>.cognitiveservices.azure.com/') ->build(); ``` 3. 调用文字语音功能: ```php $inputText = '你好,这是一个示例'; $voiceName = VoiceGender::Female; // 可选,设置声音类型 $audioConfig = AudioConfig::fromWavContent($inputText, $voiceName); try { $result = $speechToTextClient->speak($audioConfig); $outputAudioBytes = $result->getAudioStream()->getContents(); } catch (\Exception $ex) { echo "Error: " . $ex->getMessage(); } ``` 这将把输入文本换为音频文件。注意处理可能出现的异常。最后,你可以将`$outputAudioBytes`保存到文件或返回给前端。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值