语音合成:Azure+Python+SSML实现

采用的策略是微软云服务的Python SDK + SSML

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

1、注册账号

注册微软Azure账号看这里:https://zhuanlan.zhihu.com/p/49711377
需要一张vasa信用卡,也可以是虚拟卡。对于国内用户,这是极不友好的。不过也有一些其他优惠,比如学生的,自行获取国外edu教育有效了,据说GitHub学生认证也可以,不过都比较麻烦。注册的时候最好使用非大陆的IP,比如香港的IP+香港的地址

2、创建资源

在这里插入图片描述
都选择白嫖免费使用的就完事,注意要选择美国东部的服务,eastus
其他的名称只要是不重复就可以随便填,填写好就可以看到自己的key了
在这里插入图片描述

3、使用SDK

使用之前先安装SDK,Python就一条命令,很简单

pip install azure-cognitiveservices-speech

在这里插入图片描述

安装好就可以上代码了,有注释

# Copyright (c) Microsoft. All rights reserved.
# Licensed under the MIT license. See LICENSE.md file in the project root for full license information.

# <code>
## 输入文件text.txt/ssml文件
## 输出文件file.wav

from azure.cognitiveservices.speech import AudioDataStream, SpeechSynthesizer
from azure.cognitiveservices.speech.audio import AudioOutputConfig
import azure.cognitiveservices.speech as speechsdk

speech_key, service_region = "your key", "eastus"
speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)

synthesizer = SpeechSynthesizer(speech_config=speech_config)

# text = "你吃饭了吗?我现在声音自然多了吧"
# with open('text.txt', 'r',encoding='utf-8',errors='ignore') as f:
   # text = f.read()

# SSML中需要书签标签,例如。
ssml = "<speak version='1.0' xml:lang='zh-CN' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts'><voice name='zh-CN-YunxiNeural'><bookmark mark='bookmark_one'/> 你吃饭了吗?我现在声音自然多了吧</voice></speak>";

# result = synthesizer.speak_text_async(text).get() #这个是普通文本
result = synthesizer.speak_ssml_async(ssml).get() #这个是SSML文本
stream = AudioDataStream(result)
stream.save_to_wav_file("file.wav")

SSML格式和列表看官方文档
定价
在这里插入图片描述

参考

https://github.com/Azure-Samples/cognitive-services-speech-sdk/blob/master/samples/python/console/speech_synthesis_sample.py
https://zhuanlan.zhihu.com/p/437580699
https://www.bilibili.com/video/BV15a4y1W7re

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值