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)

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实现微软文本转语音相关推荐

  1. java 设置文本颜色_在Java中更改文本的颜色

    添加到我的评论: 1)您不应该通过调用paintComponent(..)方法的super.XXX实现来尊重paint链,它应该是覆盖方法中的第一个调用,否则可能发生异常: @Override pro ...

  2. java html文本编辑器,基于Java WebHTML在线文本编辑器解决方案.doc

    基于Java WebHTML在线文本编辑器解决方案 基于Java WebHTML在线文本编辑器解决方案 摘要:FckEditor作为众多优秀HTML在线文本编辑器之一,以其支持多语言的优势而受到众多国 ...

  3. java调用espeak_espeak-example Java for windows文本转语音,用 引擎 Other systems 其他 244万源代码下载- www.pudn.com...

    文件名称: espeak-example下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 1286 KB 上传时间: 2015-10-04 下载次数: 0 提 供 ...

  4. 微软语音 文本到语音_建立自己的语音助手第1部分文本到语音

    微软语音 文本到语音 Disclaimer: we will not be training neural nets in this example but rather use pre-traine ...

  5. java 文字转换成语音 代码_【Java】将文本转化成语音

    [Java]将文本转化成语音 发布时间:2018-05-07 21:45, 浏览次数:540 , 标签: Java 1.需要的jar包: 2.把dll文件放在%JAVA_HOME%\bin下(注意系统 ...

  6. 微软语音 AI 技术与微软听听文档小程序实践 | AI ProCon 2019

    演讲者 | 赵晟.张鹏 整理 | 伍杏玲 出品 | CSDN(ID:CSDNnews) [CSDN 编者按]9 月 7 日,在CSDN主办的「AI ProCon 2019」上,微软(亚洲)互联网工程院 ...

  7. 微软语音AI技术与微软听听文档小程序实践 | AI ProCon 2019

    演讲嘉宾 | 赵晟.张鹏 整理 | 伍杏玲 来源 | CSDN(ID:CSDNnews) [导语]9 月 7 日,在CSDN主办的「AI ProCon 2019」上,微软(亚洲)互联网工程院人工智能语 ...

  8. JAVA中调用阿里云语音通知Api并接收消息回执

    JAVA中调用阿里云语音通知Api并接收消息回执 配置文件 需要的包 <dependency><groupId>com.aliyun</groupId><ar ...

  9. java上传一段语音_在java程序中加入语音功能,例如给段字符串“A101”,就能发出声音,请大家帮帮忙,谢谢...

    展开全部 为应62616964757a686964616fe59b9ee7ad9431333335303530用程序加上语音能力有什么好处呢?粗略地讲,是为了趣味,它适合所有注重趣味的应用,比如游戏. ...

最新文章

  1. 5分钟学会Java 9~Java11的七大新特性
  2. ORACLE not available如何解决
  3. MATLAB应用实战系列(五十三)-模拟退火算法(附源码)
  4. 利用反射修改final数据域
  5. 转载:javascript中定义兑现改的5种方式
  6. 2017.5.5上午
  7. ajax全局加密,Ajax请求接口加密研究(针对网页前端的接口安全加密机制研究)...
  8. 三、K8s常见操作命令
  9. redis 字符串类型命令
  10. Aspen hysys换热器修改计算模式Find Fouling模式
  11. 乌龟Git Permission denied
  12. C++学习日记5——模板
  13. Docker码头工人之将爬虫放入docker运行
  14. 阿里巴巴与山东省人民政府签署战略合作协议
  15. Linksys WRT1900ACS 路由器恢复原厂固件
  16. 嵌入式开发板如何自动登陆校园网实现上网
  17. 13代酷睿移动端处理器:HX、H、P和U系列区别是什么?
  18. 一文教你如何使用Mybatis Plugin 以及Druid Filer 改写SQL
  19. Android系统触摸屏移植后出现小圆圈
  20. springboot毕业设计 基于springboot多用户商城(淘宝京东)系统毕业设计设计与实现参考

热门文章

  1. Mapbox浅析(快速入门Mapbox)
  2. 基于 HTML5 WebGL 的高炉炉体三维热力图监控,展示“智慧工厂”十八般武艺
  3. IEEE Transactions on Industrial Informatics(TII)投稿须知
  4. linux 3.10 gro的理解和改进
  5. JS将阿拉伯数字转为中文汉字
  6. 解决Debian7 无线网卡显示为设备未托管问题
  7. 【JavaSE】继承 你拿下继承了吗?一篇让你轻松拿下,简明扼要,超详解
  8. word文档生成目录的方法,word生成目录之后怎么修改页码
  9. MATLAB计算杨氏模量,基于MATLAB处理动态图像的杨氏模量测量方法.doc
  10. html搜索栏热搜效果,CSS3实战开发:百度新闻热搜词特效实战开发_html/css_WEB-ITnose...