ChatGPT与讯飞语音识别和语音合成结合中的问题总结

首先是下面的流程图,最终呈现的效果为,用户开启语音输入,识别问题后调用GPT获得结果的同时向讯飞发起语音合成. 1.语音识别1.1 语音采集语音识别目前由于浏览器的差异,目前有三种方式可用于进行语音采集 MediaRecorder:可以捕获浏览器中播放的音频或视频,并将其保存为文件或流媒体 AudioWor...

以ChatGPT为基础结合ChatVRM,讯飞语音合成和语音识别前端方案介绍

以ChatGPT为基础结合ChatVRM,讯飞语音合成和语音识别实现的前端方案中,单纯的从前端角度出发简要描述各个技术的结合. 1.ChatVrmChatVRM目前是基于SpeechRecognition,ChatGPT,Koemotion/KoeiromapAPI(语音合成),@pixiv/three-vrm(...

Rxjs操作符

创建操作符 defer(订阅时通过工厂函数创建Observable) form(创建一个Array、类数组对象、Promise、可迭代对象的Observable) formEvent(从 DOM 事件或 Node.js EventEmitter 事件或其它事件创建一个 Observable) interva...

Promise深度解析

之前对于Promise并没有深度的了解过,闲来无事手写了Promise,过程中对Promise有了更进一步的了解,其中比较难的就在于then()的内部处理,之所以能实现链式调用和异步处理,最重要的核心就是一旦调用了then()方法,内部就会重启一个新的Promise并将其返回,并根据Promise的状态来做不一样...

深入理解Typescript

针对基础的Ts知识不做过多解释,相关文档查阅即可.本文注重对于类型操作中的难点和日常项目中的高频类型等做整理.本文会在内置的高级类型基础上延展.针对内置的高级类型,这里按照操作类型做了简单的分类. 1.函数类1.Parmeters<T>/** * 返回函数的参数类型 */type Parameters...

Angular代码规范:Eslint及Cz工具集

本文主要记录Eslint和Cz工具集配置过程: 第一步:安装并配置angular-eslint 安装核心库; ng add @angular-eslint/schematics 将默认的tslint转换为eslint; ng g @angular-eslint/schematics:convert-tsli...

Angular-Viewport适配方案

本文你主要用于记录viewport适配方案在Ng中的应用.具体viewport方案的优劣和介绍不做过多介绍. 1.安装webpack自定义打包库npm i @angular-builders/custom-webpack 安装前请确认自己的Ng版本,不同版本在angular.json的配置上有略微不同;查看版本 ...

装饰器与Angular

装饰器在Angular中是个很常见的概念,@Component、@Directive、@Pipe、@NgModule、@Injectable、@Input、@Inject等等.本文着重讲解各种装饰器的作用以及在Angular中的实际使用 装饰工厂装饰器工厂只是一个函数,它返回将由装饰器在运行时调用的表达式fun...

浅谈V8

工作流程 解析器(parser):将JS代码解析成抽象语法树AST 解释器(Ignition):将抽象语法树(AST)解释成字节码(bytecode),同时可以解释执行字节码的能力 编译器(TurboFan):编译出高效的机器代码 V8的惰性解析和预解析V8的解析阶段会将源文本解析为抽象语法树,再交由解释器解...

记一次针对防止按钮连击的Angular指令封装

针对业务需要,整个流程为点击按钮=>调取异步方法=>设置操作状态=>异步结束,重置状态;其中调取异步方法中,点击按钮时都无效或不可点击 将业务封装自定义指令,通过点击按钮后监听事件,在DOM上设置属性来判断本次点击事件时的状态,但次方法对于多层DOM结构时会出现一些致命BUG导致无法生效,所以这...