UNPKG

@minto-ai/huoshan-tts

Version:

借助“火山引擎在线语音合成API”实现浏览器端“文本转语音

45 lines (39 loc) 1.3 kB
import type { SerialTaskExecuteContext } from '../handler' import type { SsmlConfig } from '../types' import type { SsmlConverter } from '../utils' import { SerialHandler } from '../handler' import { createSsmlConverter } from '../utils' class CreateSsml extends SerialHandler<string, string> { private ssmlConverter!: SsmlConverter /** * 初始化属性 * @param ssmlConfig SSML 配置(包含发音规则) */ public initProperty(ssmlConfig: SsmlConfig): void { this.ssmlConverter = createSsmlConverter(ssmlConfig.pronunciationRules ?? []) } /** * 执行处理,将当前文本转换为 SSML 并传递到下一个处理器 * @param context 串行任务上下文 */ public execute( context: SerialTaskExecuteContext<string, string>, ): void { if (context.isLastExecute) { this.taskCompletedCallback() } else { this.ssmlConverter.convertParagraphs([context.taskItem.original!]).forEach((paragraph) => { this.forwardToHandler(paragraph) }) this.taskCompletedCallback() } } /** * 完成回调,广播文本切割结束事件 */ protected onFinish(): void { this.executeController?.$bus.emit('_createSsmlFinish') } } export default CreateSsml