UNPKG

xunfei-tts

Version:

借助“讯飞在线语音合成API”实现浏览器端“文本转语音

63 lines (56 loc) 1.67 kB
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) }, }