传统听写与大模型听写比对

在快节奏的现代生活中,听写技能仍然是学习语言和提升认知能力的重要环节。然而,传统的听写练习往往枯燥乏味,且效率不高。现在,随着人工智能技术的发展,大模型听写工具的问世,为传统听写带来了革命性的变革。

大模型听写利用先进的语音识别技术,能够实时准确地将口语转换为文字,不仅提高了听写的准确率,还极大地提升了效率。与传统听写相比,大模型听写具有以下显著优势:

  1. 高效率:传统听写需要手动记录每一个单词,而大模型听写可以自动完成这一过程,节省了大量时间。

  2. 高准确性:人工智能算法能够准确识别不同的口音和语速,减少了人为错误。

  3. 个性化学习:大模型听写可以根据用户的学习进度和需求,提供个性化的听写材料和反馈。

  4. 互动性强:许多大模型听写工具配备了互动功能,如语音评估、即时反馈等,使学习过程更加生动有趣。

  5. 随时随地学习:只需一部智能手机或电脑,就可以随时随地进行听写练习,突破了时间和空间的限制。

  6. 数据追踪与分析:大模型听写工具可以记录用户的学习数据,帮助用户了解自己的学习进度和薄弱环节,从而更有针对性地进行复习。

  7. 多语言支持:对于多语言学习者来说,大模型听写支持多种语言的听写练习,是提升外语听力和写作能力的理想选择。

  8. 环境友好:数字化的听写练习减少了纸张的使用,更加环保。

  9. 易于分享与合作:用户可以将自己的听写结果轻松分享给他人,或者与他人在线合作完成听写任务。

  10. 持续更新与优化:随着技术的不断进步,大模型听写工具会持续更新和优化,为用户提供更好的学习体验。

总之,大模型听写以其高效、准确、便捷的特点,正在逐渐取代传统听写,成为现代人提升语言能力和认知水平的新选择。无论你是学生、教师还是终身学习者,都可以从大模型听写中受益,让学习变得更加轻松愉快。

<template><div class="Mult-container" style="padding: 10px;margin-bottom:50px; "><!--聊天窗口开始 --><div style="height: 150px;"><textarea v-model="text"style="height: 460px;width: 100%;padding: 20px; border: none;border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;outline: none"></textarea></div><div style="text-align: left;padding-right: 10px;margin-top: 340px;"><el-button type="primary" size="medium" @click="voiceSend"><i class="el-icon-microphone"></i>多语转文字</el-button><el-button type="danger" size="medium" @click="stopVoice">停止朗读</el-button></div></div>
</template><script>// 初始化录音工具,注意目录
let recorder = new Recorder("../../recorder")
recorder.onStart = () => {console.log("开始录音了")
}
recorder.onStop = () => {console.log("结束录音了")
}
// 发送中间帧和最后一帧
recorder.onFrameRecorded = ({isLastFrame, frameBuffer}) => {if (!isLastFrame && wsFlag) { // 发送中间帧const params = {"header": {"status": 1,"app_id": ""},"payload": {"audio": {"audio": toBase64(frameBuffer),"sample_rate": 16000,"encoding": "raw"}}}wsTask.send(JSON.stringify(params)) // 执行发送} else {if (wsFlag) {const params = {"header": {"status": 2,"app_id": ""},"payload": {"audio": {"audio": "","sample_rate": 16000,"encoding": "raw"}}}console.log("发送最后一帧", params, wsFlag)wsTask.send(JSON.stringify(params)) // 执行发送}}
}function toBase64(buffer) {let binary = "";let bytes = new Uint8Array(buffer);let len = bytes.byteLength;for (let i = 0; i < len; i++) {binary += String.fromCharCode(bytes[i]);}return window.btoa(binary);
};let wsFlag = false;
let wsTask = {};
export default {name: "Mult",data() {return {user: localStorage.getItem("user") ? JSON.parse(localStorage.getItem("user")) : {}, // 获取本地存储用户text: "",URL: 'wss://iat.cn-huabei-1.xf-yun.com/v1', // 听写地址resultText: "",resultTextTemp: "",}},methods: {async stopVoice() {if (await this.consumeBalance(this.user, "停止朗读")) {// 执行具体能力recorder.stop();this.$message.success("录音朗读停止!")}},async voiceSend() { // 开始语音识别要做的动作if (await this.consumeBalance(this.user, "多语转文字")) {// 执行具体能力this.resultText = "";this.resultTextTemp = "";await this.wsInit();}},
// 建立ws连接async wsInit() {//  this.iat = "";this.$message.success("请您说出语音内容~")let _this = this;if (typeof (WebSocket) == 'undefined') {console.log('您的浏览器不支持ws...')} else {console.log('您的浏览器支持ws!!!')let reqeustUrl = await _this.getWebSocketUrl()wsTask = new WebSocket(reqeustUrl);// ws的几个事件,在vue中定义wsTask.onopen = function () {console.log('ws已经打开...')wsFlag = truelet params = {"header": {"status": 0,"app_id": atob(_this.user.appid),},"parameter": {"iat": {"domain": "slm","language": "mul_cn","accent": "mandarin","result": {"encoding": "utf8","compress": "raw","format": "json"}}},"payload": {"audio": {"audio": "","sample_rate": 16000,"encoding": "raw"}}}console.log("发送第一帧数据...")wsTask.send(JSON.stringify(params)) // 执行发送// 下面就可以循环发送中间帧了// 开始录音console.log("开始录音")recorder.start({sampleRate: 16000,frameSize: 1280,});}wsTask.onmessage = function (message) { // 调用第二个API 自动把语音转成文本console.log('收到数据===' + JSON.stringify(message.data))let parsedMessage = JSON.parse(message.data);let code = parsedMessage.header.code;let status = parsedMessage.header.status;if (code !== 0) {console.log(`请求错误:${code}`);recorder.stop();wsTask.close();wsFlag = false} else {let payload = parsedMessage.payload;if (payload) {let text = payload.result.text;let decodedString = atob(text);let bytes = new Uint8Array(decodedString.length);for (let i = 0; i < decodedString.length; i++) {bytes[i] = decodedString.charCodeAt(i);}let decoder = new TextDecoder('utf-8');let utf8String = decoder.decode(bytes);console.log(utf8String)let utf8JsonObject = JSON.parse(utf8String)let textWs = utf8JsonObject.ws;textWs.forEach(i => {i.cw.forEach(j => {_this.resultTextTemp = j.w;_this.resultText += _this.resultTextTemp;});});console.log(_this.resultText);_this.text = _this.resultText || "";}if (status === 2) {recorder.stop();wsTask.close();wsFlag = false}}}// 关闭事件wsTask.onclose = function () {console.log('ws已关闭...')}wsTask.onerror = function () {console.log('发生错误...')}}},
// 获取鉴权地址与参数getWebSocketUrl() {return new Promise((resolve, reject) => {// 请求地址根据语种不同变化var url = this.URL;var host = this.URL.host;var apiKeyName = "api_key";var date = new Date().toGMTString();var algorithm = "hmac-sha256";var headers = "host date request-line";var signatureOrigin = `host: ${host}\ndate: ${date}\nGET /v1 HTTP/1.1`;var signatureSha = CryptoJS.HmacSHA256(signatureOrigin, atob(this.user.apisecret));var signature = CryptoJS.enc.Base64.stringify(signatureSha);var authorizationOrigin =`${apiKeyName}="${atob(this.user.apikey)}", algorithm="${algorithm}", headers="${headers}", signature="${signature}"`;var authorization = base64.encode(authorizationOrigin);url = `${url}?authorization=${authorization}&date=${encodeURI(date)}&host=${host}`;console.log(url)resolve(url); // 主要是返回地址});}}
}
</script><!--scoped 不能加-->
<style>
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/500467.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端页面上传文件:解决 ERR_UPLOAD_FILE_CHANGED

文章目录 引言I 问题 ERR_UPLOAD_FILE_CHANGED问题重现步骤原因II 解决方法将文件转换为base64再转回file检测文件内容是否发生变更III 知识扩展发送一个包含文件和文本的multipart/form-data请求签名优化引言 文件上传应用场景:船舶设备的新增导入(基础信息:出厂编号)船舶…

图文教程:使用PowerDesigner导出数据库表结构为Word/Html文档

1、第一种情况-无数据库表&#xff0c;但有数据模型 1.1 使用PowerDesigner已完成数据建模 您已经使用PowerDesigner完成数据库建模&#xff0c;如下图&#xff1a; 1.2 Report配置和导出 1、点击&#xff1a;Report->Reports&#xff0c;如下图&#xff1a; 2、点击&…

vscode 多项目冲突:进行 vscode 工作区配置

问题&#xff1a;多个项目&#xff0c;每次打开会因为配置问题/包版本冲突&#xff0c;花费过长时间。 解决&#xff1a;可以通过启用工作区&#xff0c;使得各个项目的开发环境隔离。 vscode官网 对此有两种方法&#xff1a;方法一&#xff1a;启用工作区&#xff08;workspa…

试用ChatGPT的copilot编写一个程序从笔记本电脑获取语音输入和图像输入并调用开源大模型进行解析

借助copilot写代码和自己手写代码的开发过程是一样的。 首先要有明确的开发需求&#xff0c;开发需求越详细&#xff0c;copilot写出的代码才能越符合我们的预期。 其次&#xff0c;有了明确的需求&#xff0c;最好先做下需求拆解&#xff0c;特别是对于比较复杂的应用&#xf…

快速掌握Elasticsearch检索之二:滚动查询(scrool)获取全量数据(golang)

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一&#xff1a;使用fromsize实现分页 1、滚动查询的使用场景 滚动查询区别于上一篇文章介绍的使用from、size分页检索&#xff0c;最大的特点是&#xff0c;它能够检索超过10000条外的…

【分布式文件存储系统Minio】2024.12保姆级教程

文章目录 1.介绍1.分布式文件系统2.基本概念 2.环境搭建1.访问网址2.账号密码都是minioadmin3.创建一个桶4.**Docker安装miniomc突破7天限制**1.拉取镜像2.运行容器3.进行配置1.格式2.具体配置 4.查看桶5.给桶开放权限 3.搭建minio模块1.创建一个oss模块1.在sun-common下创建2.…

2021.12.28基于UDP同信的相关流程

作业 1、将TCP的CS模型再敲一遍 服务器 #include <myhead.h> #define PORT 8888 #define IP "192.168.124.123" int main(int argc, const char *argv[]) {//创建套接字//绑定本机IP和端口号//监听客户端请求//接收客户端连接请求//收发消息//创建套接字int…

StarRocks 存算分离在得物的降本增效实践

编者荐语&#xff1a; 得物优化数据引擎布局&#xff0c;近期将 4000 核 ClickHouse 迁移至自建 StarRocks&#xff0c;成本降低 40%&#xff0c;查询耗时减半&#xff0c;集群稳定性显著提升。本文详解迁移实践与成果&#xff0c;文末附丁凯剑老师 StarRocks Summit Asia 2024…

vue视频录制 限制大小,限制时长

<template><div style"height: 100vh;background: #000;"><span style"color: #fff;font-size: 18px;">切换数量&#xff1a;{{ devices.length }}</span><video ref"video" autoplay muted playsinline></vid…

若依框架之简历pdf文档预览功能

一、前端 &#xff08;1&#xff09;安装插件vue-pdf&#xff1a;npm install vue-pdf &#xff08;2&#xff09;引入方式&#xff1a;import pdf from "vue-pdf"; &#xff08;3&#xff09;components注入方式&#xff1a;components:{pdf} &#xff08;4&…

永磁同步电机负载估计算法--自适应龙伯格观测器

一、原理介绍 龙贝格扰动观测器的参数可以通过带宽配置法进行整定&#xff0c;将观测器带宽设为L&#xff0c;选取大的L可以加快观测器的收敛速度&#xff0c;但是L过大会导致系统阶跃响应出现超调、稳态性能差等问题。因此&#xff0c;在龙贝格观测器中引入表征系统状态变量x…

Python机器学习笔记(十七、分箱、离散化、线性模型与树)

数据表示的最佳方法&#xff1a;取决于数据的语义&#xff0c;所使用的模型种类。 线性模型与基于树的模型&#xff08;决策树、梯度提升树和随机森林&#xff09;是两种成员很多同时又非常常用的模 型&#xff0c;它们在处理不同的特征表示时就具有非常不同的性质。我们使用w…

Spring Boot介绍、入门案例、环境准备、POM文件解读

文章目录 1.Spring Boot(脚手架)2.微服务3.环境准备3.1创建SpringBoot项目3.2导入SpringBoot相关依赖3.3编写一个主程序&#xff1b;启动Spring Boot应用3.4编写相关的Controller、Service3.5运行主程序测试3.6简化部署 4.Hello World探究4.1POM文件4.1.1父项目4.1.2父项目的父…

嵌入式入门Day35

网络编程 Day2 套接字socket基于TCP通信的流程服务器端客户端TCP通信API 基于UDP通信的流程服务器端客户端 作业 套接字socket socket套接字本质是一个特殊的文件&#xff0c;在原始的Linux中&#xff0c;它和管道&#xff0c;消息队列&#xff0c;共享内存&#xff0c;信号等…

安卓系统主板_迷你安卓主板定制开发_联发科MTK安卓主板方案

安卓主板搭载联发科MT8766处理器&#xff0c;采用了四核Cortex-A53架构&#xff0c;高效能和低功耗设计。其在4G网络待机时的电流消耗仅为10-15mA/h&#xff0c;支持高达2.0GHz的主频。主板内置IMG GE832 GPU&#xff0c;运行Android 9.0系统&#xff0c;内存配置选项丰富&…

centos,789使用mamba快速安装R及语言包devtools

如何进入R语言运行环境请参考&#xff1a;Centos7_miniconda_devtools安装_R语言入门之R包的安装_r语言devtools包怎么安装-CSDN博客 在R里面使用安装devtools经常遇到依赖问题&#xff0c;排除过程过于费时&#xff0c;使用conda安装包等待时间长等。下面演示centos,789都是一…

人工智能(AI)简史:推动新时代的科技力量

一、人工智能简介 人工智能&#xff08;AI&#xff0c;Artificial Intelligence&#xff09;是计算机科学的一个分支&#xff0c;旨在研究和开发可以模拟、扩展或增强人类智能的系统。它涉及多种技术和方法&#xff0c;包括机器学习、深度学习、自然语言处理&#xff08;NLP&a…

【笔记】在虚拟机中通过apache2给一个主机上配置多个web服务器

&#xff08;配置出来的web服务器又叫虚拟主机……&#xff09; 下载apache2 sudo apt update sudo apt install apache2 &#xff08;一&#xff09;ip相同 web端口不同的web服务器 进入 /var/www/html 创建站点一和站点二的目录文件&#xff08;目录文件名自定义哈&#x…

linux装git

前言 以 deepin 深度系统为例&#xff0c;安装命 令行版 Git 非常简单。 安装 注意&#xff1a;需要输入账号密码&#xff0c;否则无法进行。 打开终端&#xff0c;执行如下命令即可。 sudo apt-get install git成功 如下图所示&#xff0c;输入 git &#xff0c;命令识别即…

【Spark】架构与核心组件:大数据时代的必备技能(下)

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《大数据前沿&#xff1a;技术与应用并进》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、什么是Apache Spark 2、Spark 的应用场景&…