TTS Text-to-speech(文字转语音)服务

目录

中文帮助文档:

创建语音资源:

 填写注册信息:

转到资源服务

 编写测试代码(C#):

C#需要的包【NuGet搜索:CognitiveServices】

视频连接:


官网链接:Speech Studio - Microsoft Azure (https://speech.azure.cn/audiocontentcreation)

 中文帮助文档:

【文本转语音快速入门 - 语音服务 - Azure Cognitive Services | Microsoft Docs】

创建语音资源:

 填写注册信息:

转到资源服务

 编写测试代码(C#):

using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;namespace test1118
{public class Program{static async Task Main(){await SynthesizeAudioAsync();}static async Task SynthesizeAudioAsync(){//秘钥换成自己的var config = SpeechConfig.FromSubscription("b88f6907c8f64075a6169dc4d7dff65a","chinanorth2");using var audioConfig = AudioConfig.FromWavFileOutput("file1.wav");using var synthesizer = new SpeechSynthesizer(config, audioConfig);await synthesizer.SpeakTextAsync(" I HAVE A DREAM.");}}
}

C#需要的包【NuGet搜索:CognitiveServices】

 执行效果:


用JavaScript也很方便。 但是需要PHP的环境

【index.html】代码

<!DOCTYPE html>
<html lang="en">
<head><title>Microsoft Cognitive Services Speech SDK JavaScript Quickstart</title><meta charset="utf-8" /><style>body {font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif;font-size: 14px;}table, th, td {border: 1px solid #f1f1f1;border-collapse: collapse;}th, td {padding: 10px;}.mode {font-size: 18px;}input:not(disabled) {font-weight: bold;color: black;}button {padding: 4px 8px;background: #0078d4;color: #ffffff;}button:disabled {padding: 4px 8px;background: #ccc;color: #666;}input[type=radio] {position: relative;z-index: 1;}input[type=radio] + label {padding: 8px 4px 8px 30px;margin-left: -30px;}input[type=radio]:checked + label {background: #0078d4;color: #ffffff;}</style>
</head>
<body style="font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:13px;"><div id="warning"><h1 style="font-weight:500;">Speech Recognition Speech SDK not found (microsoft.cognitiveservices.speech.sdk.bundle.js missing).</h1></div><div id="content" style="display:none"><table width="100%"><tr><td></td><td><h1 style="font-weight:500;">Microsoft Cognitive Services Speech SDK JavaScript Quickstart</h1></td></tr><tr><td align="right"><a href="https://docs.microsoft.com/azure/cognitive-services/speech-service/get-started" target="_blank">Subscription</a>:</td><td><input id="subscriptionKey" type="text" size="40" placeholder="YourSubscriptionKey"></td></tr><tr><td align="right">Region</td><td><input id="serviceRegion" type="text" size="40" placeholder="YourServiceRegion"></td></tr><tr><td align="right" valign="top">Input Text</td><td><textarea id="phraseDiv" style="display: inline-block;width:500px;height:50px"></textarea></td></tr><tr><td></td><td><button id="startSpeakTextAsyncButton">Start Text to Speech</button></td></tr><tr><td align="right" valign="top">Result</td><td><textarea id="resultDiv" style="display: inline-block;width:500px;height:100px"></textarea></td></tr></table></div><!-- Speech SDK reference sdk. --><script src="https://aka.ms/csspeech/jsbrowserpackageraw"></script><!-- Speech SDK USAGE --><script>// status fields and start button in UIvar phraseDiv;var resultDiv;var startSpeakTextAsyncButton;// subscription key and region for speech services.var subscriptionKey, serviceRegion;var SpeechSDK;var synthesizer;document.addEventListener("DOMContentLoaded", function () {startSpeakTextAsyncButton = document.getElementById("startSpeakTextAsyncButton");subscriptionKey = document.getElementById("subscriptionKey");serviceRegion = document.getElementById("serviceRegion");phraseDiv = document.getElementById("phraseDiv");resultDiv = document.getElementById("resultDiv");startSpeakTextAsyncButton.addEventListener("click", function () {startSpeakTextAsyncButton.disabled = true;phraseDiv.innerHTML = "";if (subscriptionKey.value === "" || subscriptionKey.value === "subscription") {alert("Please enter your Microsoft Cognitive Services Speech subscription key!");startSpeakTextAsyncButton.disabled = false;return;}var speechConfig = SpeechSDK.SpeechConfig.fromSubscription(subscriptionKey.value, serviceRegion.value);synthesizer = new SpeechSDK.SpeechSynthesizer(speechConfig);let inputText = phraseDiv.value;synthesizer.speakTextAsync(inputText,function (result) {startSpeakTextAsyncButton.disabled = false;if (result.reason === SpeechSDK.ResultReason.SynthesizingAudioCompleted) {resultDiv.innerHTML += "synthesis finished for [" + inputText + "].\n";} else if (result.reason === SpeechSDK.ResultReason.Canceled) {resultDiv.innerHTML += "synthesis failed. Error detail: " + result.errorDetails + "\n";}window.console.log(result);synthesizer.close();synthesizer = undefined;},function (err) {startSpeakTextAsyncButton.disabled = false;resultDiv.innerHTML += "Error: ";resultDiv.innerHTML += err;resultDiv.innerHTML += "\n";window.console.log(err);synthesizer.close();synthesizer = undefined;});});if (!!window.SpeechSDK) {SpeechSDK = window.SpeechSDK;startSpeakTextAsyncButton.disabled = false;document.getElementById('content').style.display = 'block';document.getElementById('warning').style.display = 'none';// in case we have a function for getting an authorization token, call it.if (typeof RequestAuthorizationToken === "function") {RequestAuthorizationToken();}}});</script>
</body>
</html>

PHP代码:

<?php
header('Access-Control-Allow-Origin: ' . $_SERVER['SERVER_NAME']);// Replace with your own subscription key and service region (e.g., "westus").
$subscriptionKey = 'YourSubscriptionKey';
$region = 'YourServiceRegion';$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://' . $region . '.api.cognitive.microsoft.com/sts/v1.0/issueToken');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{}');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Ocp-Apim-Subscription-Key: ' . $subscriptionKey)); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($ch);
?>

测试:

 视频连接:

【Azure文本转语音-CSDN直播】对应使用视频。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/41741.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软杀疯了,谷歌蒸发1000亿市值作陪,中文编程和它却打起翻身仗

微软VS谷歌&#xff0c;究竟谁是最后赢家&#xff1f; 当微软宣布收购OpenAI开发的ChatGPT的决定一出&#xff0c;Google深感威胁&#xff0c;开发出Gmail的早期员工甚至大胆预测&#xff0c;Google离完全毁灭只剩下一到两年&#xff01; 好歹也在互联网之战中屹立多年&#…

手写 100% 代码的 19 年老程序员,拒绝使用 Copilot、GPT-4 工具后,惨遭淘汰、解雇!...

整理 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一个月前&#xff0c;GitHub CEO Thomas Dohmke 为自家的 AI 辅助编码工具 GitHub Copilot X 站台&#xff0c;在全球网络峰会现场&#xff0c;亲自下场体验了一把&#xff0c;最终用 18 分钟编写出了一…

【网工最关心的问题,看Chat GPT怎么回答?】

最近打开微信群聊&#xff0c;都是在说ChatGPT相关内容 那ChatGPT是什么&#xff1f; ChatGPT是由美国人工智能实验室OpenAI开发的一个对话AI模型&#xff0c;于2022年11月正式推出。它因其极其出色的文本生成和对话交互能力在世界范围内迅速走红&#xff0c;五天内用户破百万&…

盘点GPT-4,大语言模型最新综述来了

Datawhale干货 最新&#xff1a;大模型综述&#xff0c;来源&#xff1a;机器之心 为什么仿佛一夜之间&#xff0c;自然语言处理&#xff08;NLP&#xff09;领域就突然突飞猛进&#xff0c;摸到了通用人工智能的门槛&#xff1f;如今的大语言模型&#xff08;LLM&#xff09;…

GPT-4,或许真的可以让“人工”更“智能”

自2018年GPT-1发布起&#xff0c;每年一更新。距离2020年GPT-3发布已有两年&#xff0c;这段时间里&#xff0c;大家都在期待和畅想&#xff0c;GPT-4到底会带来怎样的惊喜。 期间&#xff0c;“通过图灵测试”&#xff0c;“GPT-4Beta版访问权限已提供给某公司”等消息不断&a…

市面上最好用的两款AI换脸开源神器

1.faceswap 地址链接&#xff1a;Welcome - Faceswap 2.swapface 地址链接&#xff1a;Swapface 现在ai是一个非常大的风口&#xff0c;人们都在寻找各种开源的工具。 这两款软件是非常好用的&#xff0c;我测评了很多款其他的软件&#xff0c;包括手机移动端&#xff0c;…

这 10 个好玩的 AI 项目开源了!

今日推荐开源项目目录&#xff1a; 基于 AI 的口语训练平台 一句话生成 3D 模型 歌声转换 识图模型 01 基于 AI 的口语训练平台 Polyglot 是一个开源的基于 AI 的口语训练平台客户端&#xff0c;可以在 Windows、Mac 上使用。 比如你想练习英语口语&#xff0c;只需在该平…

OpenAI 更新了AGI发展路线图

从最近的ChatGPT的表现来看&#xff0c;通往AGI的路径似乎更清晰了。AGI是人类历史上最重要的技术发明之一&#xff0c;将对社会、经济、政治等各个领域产生深远的影响。 OpenAI是一个致力于创造和推广人工智能&#xff08;AI&#xff09;的非营利组织&#xff0c;其目标是实现…

chatgpt赋能python:人脸替换Python代码:让你的创意无限可能

人脸替换Python代码&#xff1a;让你的创意无限可能 人脸替换已经成为了一种非常流行的技术&#xff0c;通过这种方法&#xff0c;我们可以将一张图片中的脸部信息替换成另一个人的脸&#xff0c;或者将一只动物的脸部信息替换成人类的脸。这种技术不仅让人们感到好玩&#xf…

TOP滔博tssign 滔博小程序 通讯协议分析(三)

三、分析源码 用到的工具&#xff1a; 操作流程 : 打开源码 在文件中搜索tssign 搜索到2个结果&#xff0c;双击第一个 tssign _ 跟踪 “_” y.dectryptForAES(m) 跟踪 “dectryptForAES” 标准的AES解密 KEY用getGlobalData获取,需要找到setGlobalData函数位置 分析…

Python采集头条新闻,轻松爬取!

随着互联网的不断发展&#xff0c;人们越来越习惯于获取信息的方式也在不断变化&#xff0c;而在这个信息爆炸的时代&#xff0c;要想获取最新、最有价值的信息&#xff0c;就需要通过一些高效、智能的工具来收集和筛选。其中&#xff0c;Python 作为一种强大的编程语言&#x…

短视频开发,短视频功能如何实现

短视频开发在当今社会发展中逐渐成为稳赚不赔的项目。不仅定位准确&#xff0c;而且很好的将大众的需求与碎片化时间合理利用&#xff0c;短视频行业才得以快速发展。在短视频开发过程中&#xff0c;SDK是必不可少的“工具”之一。 短视频拍摄 1.断点续拍&#xff1a;在拍摄过…

爆款短视频是怎样练成的:视频发布技巧,首次公开

剪辑好的优质短视频怎么发布才能成为爆款视频&#xff1f;短视频发布技巧公开 前面几篇我们讨论了短视频定位&#xff0c;怎么写文案脚本&#xff0c;怎么拍摄以及后期剪辑&#xff0c;至此我们一个优质的短视频已经制作完成&#xff0c;今天我们就聊一下下一个环节&#xff1…

【技术美术图形部分】图形渲染管线2.0-GPU管线概述几何阶段

图形渲染管线1.0 【技术美术知识储备】图形渲染管线1.0-基本概念&CPU负责的应用阶段 在上一篇中&#xff0c;从渲染分类开始介绍了什么是渲染流水线、为什么要有流水线以及流水线如何进行的&#xff0c;还介绍了CPU主导的应用阶段的四项小阶段。 这一篇的第1和第2小节主…

【GIS小案例】CesiumHeatmap热力图

1&#xff0c;CesiumHeatmap&#xff1a; GitHub - danwild/CesiumHeatmap: A library to add heatmaps (using heatmap.js) to the Cesium framework. 2&#xff0c;效果图 3&#xff0c;示例代码 <!DOCTYPE html> <html lang"en"><head><m…

UE 实时地形高度检测(一)。利用虚拟纹理(virtualTexture)低成本生成热力图/高度图/等高线。

哈喽&#xff01; 近期可能会继续撰写一些文章&#xff0c;来丰富自己工作之余的生活&#xff0c;弥补没有项目的遗憾。 如标题所见&#xff0c;这个又是一个智慧城市常见的功能&#xff1a;“热力图、高度图”。 利用虚幻 新功能&#xff1a;“虚拟纹理&#xff08;VirtualTex…

openlayers学习——15、openlayers加载热力图

openlayers加载热力图 前言&#xff1a;基于Vue&#xff0c;学习openlayers&#xff0c;根据官网demo&#xff0c;记录常用功能写法。本人不是专业GIS开发&#xff0c;只是记录&#xff0c;方便后续查找。参考资料&#xff1a; openlayers官网&#xff1a;https://openlayers.o…

NGUI使用教程(3) 使用外部图片制作Atlas(图集)

在实际操作之前有几个概念先弄清一下 Atlas:图集,把美术给你提供的素材,用 NGUI 的 Atlas Maker 工具&#xff0c;合成一张图片&#xff08;准确的说,还同时生成了prefab、mat &#xff09;。 Sprite:精灵,由于Atlas已经把你的图片都合成一张了&#xff0c;那怎么单独调用呢&…

图形引擎实战:HDRP移动版高清渲染管线改造

前言 近年来&#xff0c;随着移动平台硬件的性能不断提升&#xff0c;移动端游戏采用的渲染技术更加先进&#xff0c;整个行业对画质效果的需求也越来越大&#xff0c;我们借此做了一些技术尝试&#xff0c;测试了Unity HDRP是否可以在移动端跑起来&#xff0c;结果是可行的。…

UE 实时地形高度检测(二)。利用Niagara及虚拟纹理(virtualTexture)生成动态——立体的热力图。

接上文&#xff0c;利用Niagara 粒子的特性&#xff0c;来动态生成三维热力图&#xff0c;高程图&#xff01; 传统的平面热力图已经很清晰的表达出热力的效果了。 但是&#xff0c;在三维引擎中&#xff0c;看起来没有那么的炫酷&#xff0c;那就增加第三个维度Z轴&#xff…