微软的Azure文本转语音

本文介绍了如何使用JavaScript和AzureSpeechSDK将文本转换为语音,包括基本设置(subscriptionKey和region)、高级功能如SSML增强语音情感,以及音频处理(存储和播放控制)的详细步骤。

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

最近又被这个弔功能给搞头大了,Emmmmm.....

基于上面的聊天页面将拿到的文本内容转成语音并播放
第一个要注意的点你要是个纯前端开发就要好好去看看官方文档,要不然会很emo。。
https://learn.microsoft.com/en-us/azure/ai-services/speech-service/get-started-text-to-speech?tabs=macos%2Cterminal&pivots=programming-language-javascript

包含基本的音色的文本转语音和更高级的ssml方式的改进合成(主要是可以让合成的音频带有更多的感情色彩,比如高兴的,大声的等)
自己封装了个js实现了这个弔功能,虽然还是有个坑没有完全处理

至于文本转语音想要用最基本的是你要有subscriptionKey、region,这两个弔东西来自于Microsoft Azure你所创建的资源组


随便点进去一个自己创建的resources就可以看到里面的详情信息了


这就是开发的时候要用到的两个弔参数,至于怎么创建resources自己去百度吧

再往下就是你肯定需要引入sdk啊,
import * as sdk from "microsoft-cognitiveservices-speech-sdk";
设计到合成的时候也就是只用到了下面的两个方法的一部分


如果result.reason返回10 那么恭喜你,至于合成之后的音频怎么处理就看自己的需求了,比如我的需求是合成音频后还要存储到云端,方便后续可以直接下载使用,不用反复的走合成,毕竟合成是按字节收费的,就算公司不是你家 也不能那么造啊,azure有自己的存储storage,由于本人较懒就直接用了腾讯云的存储,包括查询,上传,下载等

还有个需要注意的点要提示一下,合成的语音是二进制的,而且合成后会自动播放的,所以需要配置第二个参数null的直接就不播放了,也可以配置第二个参数Audioconfig手动控制暂停

以上也就是大概js 文本转语音的基本实现方法了

PHP本身并不直接支持微软Azure的文字语音功能,但你可以通过Azure的API和服务来集成这种功能。在PHP中,你需要使用Azure SDK for PHP,它提供了一个方便的客户端库来调用Azure的Text-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`保存到文件或返回给前端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值