关于微软文本转语音(语音合成)的一些坑

编程入门 行业动态 更新时间:2024-10-08 18:41:49

关于<a href=https://www.elefans.com/category/jswz/34/1769887.html style=微软文本转语音(语音合成)的一些坑"/>

关于微软文本转语音(语音合成)的一些坑

1. 单个音频时长限制10分钟

文档地址

2. 多人配音SSML

每次请求 <voice> 标签只能最大50个,参考 #1

3. SDK 在 linux 环境下 报错:gcc 软件无法加载

4. 语音品质问题

使用 SDK 生成的音频声音很差,默认音频流格式为 WAV(16 KHz 或 8 kHz,16 位,单声道 PCM)
参考

可以使用这个设置提升品质

SpeechConfig config = SpeechConfig.fromSubscription("xxx", "xxx");
config.setSpeechSynthesisVoiceName("zh-CN-YunxiNeural");
config.setSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff48Khz16BitMonoPcm);

这里一定要选Riffxxx开头的 后面会讲到

另外

由于音频限制最大时长10分钟的问题,太多文本的情况下只能

  • 控制单次文本长度,分批次文本一个个生成
  • 合并音频 (拼接起来)

========== 音 频 拼 接 大 坑 ======

如果SpeechSynthesisOutputFormat选的不是 Riffxxx 开头的 生成的音频可能无法播放,无法解析。
刚开始还以为是别人SDK的问题…还去 Github 各种搜,百度各种搜,谷歌各种搜…,最后放弃了,后面又想起来 绝对是SpeechSynthesisOutputFormat 的问题,挨个试终于确认了是这个引起。
但不知什么原因…
换了好多个JAVA的语言类库去解析音频也无法解析
就连 ffmpeg 也没法处理

AudioSystem.getAudioInputStream(audioFile); 也无法解析,报错:javax.sound.sampled.UnsupportedAudioFileException: File of unsupported format

AudioFileIO.read(audioFile); 也无法解析,报错:Exception in thread “main” org.jaudiotagger.audio.exceptions.CannotReadException: outputaudio.wav Wav RIFF Header not valid


特此记录

更多推荐

关于微软文本转语音(语音合成)的一些坑

本文发布于:2023-11-17 06:51:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1639682.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:微软   语音   文本   语音合成

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!