当前位置: 首页 > 网络应用技术

使用Microsoft的文本在Uni-App中为服务提供服务

时间:2023-03-07 15:26:35 网络应用技术

  在尝试了各种TTS解决方案之后,经过一定的经验,发现微软是该领域的国王。其服务的转换是最自然的,但是Azure是一项付费服务,付款操作太麻烦了。但是,它在其官方网站上提供了演示功能,可以充分体验所有角色语音和口语风格...

  但是不可能将其下载到文件中,因此有些朋友必须通过转录计算机的声音获取音频文件,但这太麻烦了。实际上,网页上可以看到的所有资源都是解密的结果。换句话说,只要从网页上播放此声音,我们就必须找到一种提取音频文件的方法。

  本文是记录整个探索实施的过程,请享受?

  本文的大多数内容都在今年年初写在我手中。我知道,一旦该方法公开,我可能很快就会引入Microsoft的阻塞,甚至直接取消了网页体验的入口和相关接口。

  使用Chrome浏览器打开测试面板。当我们在Azure官方网站上单击该功能时,我们可以从网络标签监视到请求。这是一个请求。

  在请求中,我们可以看到有两个参数和和谐

  有趣的是,第一个参数是在网页的源代码中。使用请求向此Azure文本的URL启动请求。

  检查启动请求的JS调用堆栈后,单击断点,然后单击再次播放

  可以发现第二个参数来自函数

  这是一个格式字符串,对此一无所有。

  在要求时,URL中的两个参数已完成。我们继续分析此请求。您可以从消息标签中看到

  每次单击播放时,您都会向服务器报告三个数据。显然,您可以看到数据的三个报告的作用。

  第一个数据:SDK版本,系统信息,Useragent

  第二个数据:过渡语音输出配置。从角度来看,最终音频格式不是我们想要的文件吗?

  第三个数据:语音的文本信息和字符,速度,音调,情感和其他配置

  由于从前三次返回的信息是文件,因此我们可以将返回的所有二进制数据缝合到一个完整的文件中吗?答案是肯定的!

  每次我从收据中所有消息中单击最后一条消息时,都有一个明确的标识符结束

  代表转换已经结束!

  既然它们已经被解析,其余的就是重新实现此过程的过程。

  首先发送

  第二次发送

  第三发送

  发送三次后,我们听了通过监视收到的二进制消息。

  创建一个空的缓冲对象,然后每次缝制收到的二进制内容。一旦监视了一般文本消息,它将写入文件中。

  这样,我们成功保存了音频文件,甚至没有Azure官方网站!

  我将整个代码包装到命令行工具中,这非常易于使用

  所有开源:https://github.com/ezshine/mstts-js

  创建一个新的云功能,命名

  由于它已被封装,仅在云功能中,然后代码如下

  有两种方法可以在Uniapp中播放此MP3格式文件。

  方法1.首先上传到云存储,通过云存储地址访问

  前端用法:

  方法2.使用云函数的urlization+集成响应访问此方法是将云功能的响应主体直接转换为mp3文件。

  前端用法:

  如此简单的库,如果您为您提供帮助,请不要忘记在其中支持它。

  我是一个喜欢编程的程序。个人微信:

  原始:https://juejin.cn/post/7103720862221598757