xunfei-tts
Version:
借助“讯飞在线语音合成API”实现浏览器端“文本转语音
63 lines (56 loc) • 1.67 kB
text/typescript
import type { BusinessParams, SystemConfig } from './types'
import TtsController from './tts-controller'
let systemConfig: SystemConfig
const defaultBusinessParams: BusinessParams = {
aue: 'raw',
sfl: 1,
auf: 'audio/L16;rate=16000',
vcn: 'xiaoyan',
speed: 50,
volume: 50,
pitch: 50,
bgs: 0,
tte: 'UTF8',
reg: '2',
rdn: '0',
}
/**
* 用于管理文本转语音的配置和创建实例
*/
export default {
/**
* 配置系统参数。
* @param {SystemConfig} _systemConfig - 系统配置参数。
* @returns {object} 返回当前对象,支持链式调用。
*/
config(_systemConfig: SystemConfig) {
systemConfig = _systemConfig
return this
},
/**
* 创建文本转语音控制器实例。
* @param {Partial<BusinessParams>} [_businessParams] - 业务参数,默认为空对象。
* @returns {TtsController} 返回TtsController实例。
* @throws {Error} 如果系统配置未设置或API_KEY、API_SECRET、APPID为空,则抛出错误。
*/
create(_businessParams: Partial<BusinessParams> = {}): TtsController {
const { API_KEY, API_SECRET, APPID } = systemConfig
if (!systemConfig) {
throw new Error('请先调用config方法进行配置')
}
if (!API_SECRET) {
throw new Error('API_SECRET不能为空')
}
if (!APPID) {
throw new Error('APPID不能为空')
}
if (!API_KEY) {
throw new Error('API_KEY不能为空')
}
const businessParams = {
...defaultBusinessParams,
..._businessParams,
}
return new TtsController(systemConfig, businessParams)
},
}