本地文本转语音并返回MP3字节集

易语言 2020-07-17 10:13:15

本地文本转语音并返回MP3字节集

薛氏_列举本地读音库 (语音库)
调试输出 (语音库)
MP3 = 薛氏_文本转语音 (“本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。”, 语音库 [1])
写到文件 (取运行目录 () + “\我草.mp3”, MP3)

.子程序 薛氏_文本转语音, 字节集, 公开, 成功返回MP3字节集,失败返回空字节集
.参数 语音文本, 文本型
.参数 语音库, 文本型, , 声音库名称,请使用薛氏_列举本地读音库列表
.参数 语音速度, 整数型, 可空, -10至10之间,超出后取极限值,留空时为0
.局部变量 机读文本, 机读文本
.局部变量 WAV文件名, 文本型
.局部变量 语音数据, 字节集
.局部变量 I, 整数型
.局部变量 M, 整数型

.如果真 (是否为空 (语音速度))
语音速度 = 0
.如果真结束
.如果真 (语音速度 > 10)
语音速度 = 10
.如果真结束
.如果真 (语音速度 < -10)
语音速度 = -10
.如果真结束
机读文本.设置语音库 (语音库)
机读文本.设置语速 (语音速度)
WAV文件名 = 取运行目录 () + “\temp_sound” + 到文本 (语音库) + “.”
.如果 (机读文本.输出声音文件 (0, 语音文本, WAV文件名 + “wav”))
返回 (薛氏_WAV转MP3 (WAV文件名 + “wav”))
.否则
返回 ({ })

' 刷新页面属性 (字号大小.位置 × 4 + 10, 间距宽窄.位置 × 3 + 3)
文本 = 机读文本.列举语音库 ()
清除数组 (库名称)
.计次循环首 (取数组成员数 (文本), I)
.如果真 (寻找文本 (文本 [I], “ENGLISH”, , 真) = -1)
加入成员 (库名称, 文本 [I])
.如果真结束

.计次循环尾 ()