当前位置: 首页 > news >正文

快速体验微软TTS服务

微软的语音合成服务(TTS)拥有500多种高品质的音色,并且在全球都有节点可以接入,在国内访问延迟可以控制在毫秒级。下面介绍在不需要编码的情况下,如何快速体验微软TTS的效果。

方式一、微软语音库UI界面

语音库地址:Speech Studio

条件:有微软开发账号

访问微软的语音库页面,在页面上选择需要体验的声音,然后输入对应文本,就能实时合成语音。

没有账号的话,可以听官方给的demo,效果可能会有差异。

方式二、REST API

TTS API:文本转语音 API 参考 (REST) - 语音服务 - Azure AI services | Microsoft Learn

条件:有语音服务的token

开发者有可能没有账号的权限,但是一定有sts的token,服务上线也需要这个token。

通过API获取音频需要分三步:

  1. 选取语音名称

  2. 获取TTS的访问token

  3. 调用语音合成接口

选取语音名称

一般我们会先在语音库试听声音的demo,大致选定几个声音。然后在“示例代码”里找到:

config.SpeechSynthesisVoiceName = "zh-CN-XiaochenMultilingualNeural";

"zh-CN-XiaochenMultilingualNeural"就是当前声音对应的名字。

另外,可以通过声音列表接口,获取全部支持的声音和可用的区域:

curl 'https://eastasia.tts.speech.microsoft.com/cognitiveservices/voices/list' --header 'Authorization: Bearer {accessToken}' --- 返回值 ---
[{"Name": "Microsoft Server Speech Text to Speech Voice (af-ZA, AdriNeural)","DisplayName": "Adri","LocalName": "Adri","ShortName": "af-ZA-AdriNeural","Gender": "Female","Locale": "af-ZA","LocaleName": "Afrikaans (South Africa)","SampleRateHertz": "48000","VoiceType": "Neural","Status": "GA","WordsPerMinute": "147"},...
]

请求头里的accessToken就是第二步获取到访问token。

获取访问token

获取访问token需要先拿到语音服务的apiKey,这个需要用微软账号在后台先创建出来。然后通过接口获取访问token:

curl -X POST 'https://eastasia.api.cognitive.microsoft.com/sts/v1.0/issueToken' --header 'Ocp-Apim-Subscription-Key: {apiKey}' -d ''

调用语音合成接口

拿到访问token后,就能直接通过语音API /cognitiveservices/v1合成音频:

curl -X POST 'https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1' \
-H 'Authorization: Bearer {accessToken}' \
-H 'X-Microsoft-OutputFormat: audio-24khz-48kbitrate-mono-mp3' \
-H 'User-Agent: TEST' \
-H 'Content-Type: application/ssml+xml' \
-d '<speak version="1.0" xmlns="https://www.w3.org/2001/10/synthesis" xml:lang="en-US"><voice name="zh-CN-XiaochenMultilingualNeural">hi there!How was your weekend?Did you do anything interesting?</voice>
</speak>' --output test.mp3

这里有几个注意点:

  1. apiKey是和区域绑定,选择endpoint的时候要注意对应关系。区域和endpoint关系

  2. X-Microsoft-OutputFormat决定合成音频的采样率和格式等信息,16khz效果较差,24khz和48kzh才有真人的感觉。音频输出格式

  3. body里填的是SSML格式内容,voice标签可以指定声音名字。SSML介绍

方式三、通过SDK合成

SDK方式:文本转语音快速入门 - 语音服务 - Azure AI services | Microsoft Learn

条件:有语音服务的token

通过SDK合成原理是本地与TTS服务建立websocket连接,支持合成音频内容流式输出,并且增加了许多回调事件。

线上环境应该优先使用SDK合成方式,这种方式准备环境比较复杂,需要预安装一些插件,具体不展开介绍,可以查看官方文档。安装语音SDK

安装完环境后,调用方式如下:

SpeechConfig config = SpeechConfig.fromSubscription("{apiKey}", "{region}");
config.setSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Audio24Khz48KBitRateMonoMp3);
config.setSpeechSynthesisVoiceName("zh-CN-XiaochenMultilingualNeural");
SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(config, null);
SpeechSynthesisResult speechSynthesisResult = speechSynthesizer.SpeakSsml("""<speak version="1.0" xmlns="https://www.w3.org/2001/10/synthesis" xml:lang="en-US"><voice name="zh-CN-XiaochenMultilingualNeural">hi there!How was your weekend?Did you do anything interesting?</voice></speak>""");
System.out.println("音频的二进制内容:" + speechSynthesisResult.getAudioData());


http://www.mrgr.cn/news/3243.html

相关文章:

  • 91.SAP ABAP - 在程序中声明结构对象 - 笔记
  • 基于Java爬取微博数据(二) 正文长文本+导出数据Excel
  • Qt五大核心特性之信号与槽
  • 鸿蒙(API 12 Beta3版)【DRM系统管理(ArkTS)】数字版权保护
  • HTML 列表和容器元素——WEB开发系列10
  • Tomcat
  • 【数据结构】选择排序
  • Stable Diffusion赋能“黑神话”——助力悟空走进AI奇幻世界
  • 操作系统相关 形象比喻
  • 设计模式实战:库存管理系统的设计与实现2
  • 校园一卡通_q7e7o
  • 调用大模型API-文心一言
  • 误闯机器学习(第一关-概念和流程)
  • 异构数据同步 datax (3) xxl-job 分布式任务调度
  • KeyShot 2024.2:卓越的Mac与Windows 3D渲染与动画制作软件
  • 鸿蒙内核源码分析(中断切换篇) | 系统因中断活力四射
  • 如何提高研发效能?思码逸 信通院给你答案
  • 2020 位示图
  • mybatis druid postgresql statement超时原理原理
  • Error: ReferenceError: ReadableStream is not defined