JSON Schema初探

最近由于项目需要,需要非开发人员根据业务数据的手动录入表单并且可以同步输出对应的JSON数据.记录下整个业务分析和最终实现的过程. 前提基于以上的业务流程,最初在没有对JSON Schema有足够的了解下,采用了动态表单和ng-content来实现,将JSON Schema但是最终出来的效果使整个表单业务过于复...

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的解析阶段会将源文本解析为抽象语法树,再交由解释器解...