世界杯欧洲区预选赛_世界杯足球几年一次 - chinaacecloud.com



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

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

文档地址

2. 多人配音SSML

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

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

必须认真阅读这个 平台要求 !!! 必须是JDK而不是JRE

2023-11-13 09:55:10.538 ERROR [p-nio-80-exec-5] c.c.c.c.book.BookToMp3Controller : 183 : 语音合成失败: Canceled

2023-11-13 09:55:10.541 ERROR [p-nio-80-exec-5] c.c.c.c.book.BookToMp3Controller : 185 : CANCELED: Reason=Error

2023-11-13 09:55:10.541 ERROR [p-nio-80-exec-5] c.c.c.c.book.BookToMp3Controller : 188 : CANCELED: ErrorCode=ConnectionFailure

2023-11-13 09:55:10.541 ERROR [p-nio-80-exec-5] c.c.c.c.book.BookToMp3Controller : 189 : CANCELED: ErrorDetails=Connection failed (no connection to the remote host). Internal error: 1. Error details: Failed with error: WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED

wss://southeastasia.tts.speech.microsoft.com/cognitiveservices/websocket/v1

X-ConnectionId: 5d2a22355fde40ca89306316382bb15f USP state: Sending. Received audio size: 0 bytes.

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

特此记录