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)
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实现微软文本转语音相关推荐
- java 设置文本颜色_在Java中更改文本的颜色
添加到我的评论: 1)您不应该通过调用paintComponent(..)方法的super.XXX实现来尊重paint链,它应该是覆盖方法中的第一个调用,否则可能发生异常: @Override pro ...
- java html文本编辑器,基于Java WebHTML在线文本编辑器解决方案.doc
基于Java WebHTML在线文本编辑器解决方案 基于Java WebHTML在线文本编辑器解决方案 摘要:FckEditor作为众多优秀HTML在线文本编辑器之一,以其支持多语言的优势而受到众多国 ...
- 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 提 供 ...
- 微软语音 文本到语音_建立自己的语音助手第1部分文本到语音
微软语音 文本到语音 Disclaimer: we will not be training neural nets in this example but rather use pre-traine ...
- java 文字转换成语音 代码_【Java】将文本转化成语音
[Java]将文本转化成语音 发布时间:2018-05-07 21:45, 浏览次数:540 , 标签: Java 1.需要的jar包: 2.把dll文件放在%JAVA_HOME%\bin下(注意系统 ...
- 微软语音 AI 技术与微软听听文档小程序实践 | AI ProCon 2019
演讲者 | 赵晟.张鹏 整理 | 伍杏玲 出品 | CSDN(ID:CSDNnews) [CSDN 编者按]9 月 7 日,在CSDN主办的「AI ProCon 2019」上,微软(亚洲)互联网工程院 ...
- 微软语音AI技术与微软听听文档小程序实践 | AI ProCon 2019
演讲嘉宾 | 赵晟.张鹏 整理 | 伍杏玲 来源 | CSDN(ID:CSDNnews) [导语]9 月 7 日,在CSDN主办的「AI ProCon 2019」上,微软(亚洲)互联网工程院人工智能语 ...
- JAVA中调用阿里云语音通知Api并接收消息回执
JAVA中调用阿里云语音通知Api并接收消息回执 配置文件 需要的包 <dependency><groupId>com.aliyun</groupId><ar ...
- java上传一段语音_在java程序中加入语音功能,例如给段字符串“A101”,就能发出声音,请大家帮帮忙,谢谢...
展开全部 为应62616964757a686964616fe59b9ee7ad9431333335303530用程序加上语音能力有什么好处呢?粗略地讲,是为了趣味,它适合所有注重趣味的应用,比如游戏. ...
最新文章
- 5分钟学会Java 9~Java11的七大新特性
- ORACLE not available如何解决
- MATLAB应用实战系列(五十三)-模拟退火算法(附源码)
- 利用反射修改final数据域
- 转载:javascript中定义兑现改的5种方式
- 2017.5.5上午
- ajax全局加密,Ajax请求接口加密研究(针对网页前端的接口安全加密机制研究)...
- 三、K8s常见操作命令
- redis 字符串类型命令
- Aspen hysys换热器修改计算模式Find Fouling模式
- 乌龟Git Permission denied
- C++学习日记5——模板
- Docker码头工人之将爬虫放入docker运行
- 阿里巴巴与山东省人民政府签署战略合作协议
- Linksys WRT1900ACS 路由器恢复原厂固件
- 嵌入式开发板如何自动登陆校园网实现上网
- 13代酷睿移动端处理器:HX、H、P和U系列区别是什么?
- 一文教你如何使用Mybatis Plugin 以及Druid Filer 改写SQL
- Android系统触摸屏移植后出现小圆圈
- springboot毕业设计 基于springboot多用户商城(淘宝京东)系统毕业设计设计与实现参考
热门文章
- Mapbox浅析(快速入门Mapbox)
- 基于 HTML5 WebGL 的高炉炉体三维热力图监控,展示“智慧工厂”十八般武艺
- IEEE Transactions on Industrial Informatics(TII)投稿须知
- linux 3.10 gro的理解和改进
- JS将阿拉伯数字转为中文汉字
- 解决Debian7 无线网卡显示为设备未托管问题
- 【JavaSE】继承 你拿下继承了吗?一篇让你轻松拿下,简明扼要,超详解
- word文档生成目录的方法,word生成目录之后怎么修改页码
- MATLAB计算杨氏模量,基于MATLAB处理动态图像的杨氏模量测量方法.doc
- html搜索栏热搜效果,CSS3实战开发:百度新闻热搜词特效实战开发_html/css_WEB-ITnose...