springboot微软文本转语音(texttospeach) java实现微软文本转语音

这篇具有很好参考价值的文章主要介绍了springboot微软文本转语音(texttospeach) java实现微软文本转语音。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

java实现微软文本转语音(TTS)经验总结

  • 官网地址:

    https://docs.microsoft.com/zh-cn/azure/cognitive-services/speech-service/quickstarts/setup-platform?tabs=windows%2Cubuntu%2Cdotnet%2Cjre%2Cmaven%2Cnodejs%2Cmac%2Cpypi&pivots=programming-language-java

  • 参数文档和其他文档

    https://docs.microsoft.com/zh-cn/java/api/com.microsoft.cognitiveservices.speech.speechconfig?view=azure-java-stable#com-microsoft-cognitiveservices-speech-speechconfig-fromsubscription(string-string)

  • 选到语音名称

    在ssml选一个语音,会生成到左边代码里,voice name=‘xxxxxx’

    https://azure.microsoft.com/zh-cn/services/cognitive-services/text-to-speech/#features

一、直接上代码

方式一:直接调用

  <dependency>
      <groupId>com.microsoft.cognitiveservices.speech</groupId>
      <artifactId>client-sdk</artifactId>
      <version>1.12.1</version>
  </dependency>

@PostMapping("/text-to-url")
    @ApiOperation("地址识别")
    public Result getArea(String text) {
        SpeechConfig speechConfig = SpeechConfig.fromSubscription("你的apiKey", "eastasia");//key,地区
        speechConfig.setSpeechSynthesisLanguage("zh-CN");//语言
        speechConfig.setSpeechSynthesisVoiceName("zh-CN-XiaoxiaoNeural");//语言名称
     	 speechConfig.setSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);
        SpeechSynthesizer synthesizer = new SpeechSynthesizer(speechConfig, null);
        SpeechSynthesisResult result = synthesizer.SpeakText(text);
        AudioDataStream stream = AudioDataStream.fromResult(result);
        stream.saveToWavFile("D:/file.wav");//生成位置
        stream.close();
        return new Result();
    }

方式二:ssml(因为别人写过了,我这边就不写了,实测不好用,看了官方文档,写了方式一)

  • 参考地址:http://t.zoukankan.com/aohongzhu-p-15174381.html

  • 参考地址的原文地址:https://www.cnblogs.com/aohongzhu/p/15174381.html

改进(退化成没有redis)文章来源地址https://www.toymoban.com/news/detail-578033.html

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Date;
@Component
@Slf4j
public class Authentication {
    private String assessToken = null;//token缓存
    private Date setTime = null;//设置的有效时间
    /**
     * @param token   新获取的token
     *
     */
    private void setToken(String token) {
        this.assessToken = token;
        this.setTime = new Date(new Date().getTime() + TtsConst.ACCESS_TOKEN_EXPIRE_TIME * 1000L);
    }
    /**
     * 判断是否在有效期前
     * @return token
     */
    private String getAssessToken() {
        Date date = new Date();
        if (date.getTime() - this.setTime.getTime() < 0L) {
            return this.assessToken;
        }
        return null;
    }
    public String genAccessToken() {
        InputStream inSt;
        HttpsURLConnection webRequest;

        try {
            String accessToken = this.getAssessToken();
            if (StringUtils.isEmpty(accessToken)) {
                webRequest = HttpsConnection.getHttpsConnection(TtsConst.ACCESS_TOKEN_URI);
                webRequest.setDoInput(true);
                webRequest.setDoOutput(true);
                webRequest.setConnectTimeout(5000);
                webRequest.setReadTimeout(5000);
                webRequest.setRequestMethod("POST");

                byte[] bytes = new byte[0];
                webRequest.setRequestProperty("content-length", String.valueOf(bytes.length));
                webRequest.setRequestProperty("Ocp-Apim-Subscription-Key", TtsConst.API_KEY);
                webRequest.connect();

                DataOutputStream dop = new DataOutputStream(webRequest.getOutputStream());
                dop.write(bytes);
                dop.flush();
                dop.close();

                inSt = webRequest.getInputStream();
                InputStreamReader in = new InputStreamReader(inSt);
                BufferedReader bufferedReader = new BufferedReader(in);
                StringBuilder strBuffer = new StringBuilder();
                String line = null;
                while ((line = bufferedReader.readLine()) != null) {
                    strBuffer.append(line);
                }

                bufferedReader.close();
                in.close();
                inSt.close();
                webRequest.disconnect();

                accessToken = strBuffer.toString();
                //设置accessToken的过期时间为9分钟
                this.setToken(accessToken);
                log.info("获取微软tss token成功,token: {}", accessToken);
            }
            return accessToken;
        } catch (Exception e) {
            log.error("生成微软tss token失败,错误信息:{}", e.getMessage());
        }
        return null;
    }
}

到了这里,关于springboot微软文本转语音(texttospeach) java实现微软文本转语音的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 文本转语音免费 微软Azure官网,在线就可以转语音。

    使用跨 140 种语言和变体的 400 种神经网络语音吸引全球受众。使用极具表现力和类似人类的声音,使文本阅读器和已启用语音的助理等方案栩栩如生。神经网络文本转语音支持多种朗读风格,包括新闻广播、客户服务、呼喊、耳语以及高兴、悲伤等情感。 地址 文本转语音

    2024年02月05日
    浏览(25)
  • 微软/edge文本转语音API接口

    类型:websocket 类型:websocket

    2023年04月16日
    浏览(24)
  • C#调用微软api文本转语音

    目录 1.注册微软云服务,搭建文本转语音标准应用(每月500万字免费好像) 2.Visual studio使用nuget给程序安装Microsoft.CognitiveServices.Speech框架  3.引用命名空间 4.文本转语音参考代码 5.文本转语音下载到本地参考代码

    2024年02月12日
    浏览(31)
  • 【微信小程序】接入微软azure文本转语音的记录

    想在微信小程序中实现文本转语音的功能,使用azure的RESTful API。 先说结论: 还是在后台处理吧 现象 :模拟器上运行是正常的,可以获得转换后的音频,真机调试时, statusCode:400 ,在官方文档中的解释是,参数错误,常见原因是:标头过长。 原因 :小程序wx.request user-age

    2024年02月06日
    浏览(57)
  • edge-tts微软文本转语音库,来听听这些语音是否很熟悉?

    上期图文教程,我们分享了Azure机器学习的文本转语音的账号申请与API申请的详细步骤,也介绍了基于python3实现Azure机器学习文本转语音功能的代码实现过程,虽然我们可以使用Azure账号免费提供一年的试用期,但是毕竟是要付费的,我们的API也无法长期使用,好在微软发布了

    2024年02月07日
    浏览(38)
  • 免费下载微软azure文本转语音的mp3文件

    免费下载微软azure文本转语音的mp3文件 Azure机器学习的文本转语音最接近人声, 大家平时看的抖音的影视剪辑账号用的配音都是从这里录制下载的 一、下载 edge浏览器 由于国内下载google浏览器插件需要科学上网,所以我们这里使用edge浏览器 下载地址可以自行百度,或者从这里

    2024年02月05日
    浏览(36)
  • 文本转语音-微软Azure-一步一步教你从注册到使用

    牙叔教程 简单易懂 他们的中文也许还行, 但是英文我试了都不满意, 我再网上搜到的我认为最好的是 但是丫真贵 Best Free Text To Speech Voice Reader | Speechify 现在的汇率是 139 × 6.91 = 960.49 一年一千块, 好像还行哈, 但是没卡呀, 擦, 比来比去, 还是微软Azure性价比最高, 没有微软Azure的

    2024年02月07日
    浏览(30)
  • 【离线文本转语音文件】java spring boot jacob实现文字转语音文件,离线文本转化语音,中英文生成语音,文字朗读,中文生成声音,文字生成声音文件,文字转语音文件,文字变声音。

    输入文字(支持中英文),点击转换生成***.wav文件,点击下载到本地就可。  生成后的音频文件播放,时长1分8秒          这次采用jacob实现,相比百度AI需要联网,本项目定位内网环境实现。所以最终采jacob。 1.环境配置: 本次采用版本jacob-1.19,我们需要下载jacob.jar和dll

    2024年02月16日
    浏览(55)
  • C++ —— 调用微软语音接口(SAPI),实现文字转语音播放

    SAPI介绍      SAPI(The Microsoft Speech API) ———— 微软语音接口      SAPI中的语音技术包括两部分内容: 语音识别、语音合成 。均需语音引擎的支持。      SAPI包含以下组件对象:           1)、Vocie Commands API.对应用程序进行控制,一般用于语音识别

    2024年02月05日
    浏览(27)
  • C# .NET调用OpenAI及微软语音服务实现语音输入及输出

    目前C#调用Open AI有很多的开源库,本文使用的nuget包如下: 都有开源库,所以实现起来就比较简单了,主要难度可能还是注册账号,有能力的可以自己试试,在这儿贴出部分调用的主要代码,项目已开源,Github搜索JamesBaiJun/OpenAI-Azure,记得点个Star。 调用ChatGPT使用Nuget的Open

    2024年02月02日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包