讯飞语音转写

2023-11-12

逻辑:语音上传 –> prepare(讯飞)返回一个task_id –> 音频分片上传 upload(讯飞,调用多次,直到文件全部上传完成)–> 合并音频merge(讯飞)–>每三分钟调用getProgress(讯飞)–>得到结果getResult(讯飞)

讯飞官方文档:https://www.xfyun.cn/doc/asr/lfasr/API.html#接口调用流程

安装插件:js-md5 和 crypto-js

接口文件如下:

import axios from '@/libs/api.request'
const front = 'api/'

export const Prepare = (data) => {
   
  return axios.request({
   
    url: `${
     front}prepare`,
    data: data,
    method: 'post'
  })
}

export const Upload = (data) => {
   
  return axios.request({
   
    url: `${
     front}upload`,
    data: data,
    method: 'post'
  })
}

export const Merge = (data) => {
   
  return axios.request({
   
    url: `${
     front}merge`,
    data: data,
    method: 'post'
  })
}

export const Progress = (data) => {
   
  return axios.request({
   
    url: `${
     front}getProgress`,
    data: data,
    method: 'post'
  })
}

export const Result = (data) => {
   
  return axios.request({
   
    url: `${
     front}getResult`,
    data: data,
    method: 'post'
  })
}

主要文件如下:

<template>
    <div class="container">
        <div class="file-upload">
            <Button v-if="!isFile" type="primary" @click="file">上传文件</Button>
            <label v-if="!isFile" ref="upload"
                   style="position: relative;">
                <input type="file"
                       @change="selectFile"
                       style="position: absolute; width: 1px; height: 1px; opacity: 0; z-index: -1;">
            </label>
            <div v-if="isFile" class="file-panel">
                <div class="file-title">
                    <div class="operate">
                        <span>{
   {
   fileName}}</span>
                        <div v-if="isProgress" class="file-progress">
                            <p class="progress" :style="{width: progress + '%'}"></p>
                        </div>
                        <p style="color: #2db7f5" v-if="mergeShow">语音合并中...</p>
                        <p style="color: #2b85e4" v-if="progressShow">{
   {
   progressText}}</p>
                    </div>
                </div>
                <div class="file-info">文件大小:{
   {
   fileSize}}</div>
            </div>
        </div>
        <p style="color: #333333;font-size: 14px">转换结果如下:</p>
        <div class="file-text" v-html="text"></div>
    </div>

</template>

<script>
  import {
    Prepare, Upload, Progress, Merge, Result } from '../../api/text'
  import md5 from 'js-md5'
  import cryptoJs from 'crypto-js'

  export default {
   
    components: {
   },
    data () {
   
      return {
   
        isFile: false,
        // 文件参数
        fileName: '',
        fileSize: '',
        // chunkSize: 5242880, //5M
        chunkSize: 10485760,//10M

        app_id: 'xxxxxxxx',
        secretkey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',// 语音转写密钥
        slice_num: '',
        taskId:</
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

讯飞语音转写 的相关文章

  • 监听 Vue.js 中的自定义事件

    Vue js 非常适合处理浏览器事件 例如click or mousedown 但根本不适用于自定义事件 这是代码 HTML div style display none div div div div div
  • nuxtjs 无法在生产环境中显示动态 url

    我正在使用 nuxjs 构建我的项目 并创建一个动态显示地点信息的页面 当我跑步时npm run dev并测试http localhost 3000 place 66bb50b7a5 http localhost 3000 place 66
  • Laravel Vue js spa 应用程序

    1 我想知道为什么人们使用两台服务器用 laravel 制作 vuejs SPA 我想我们可以用另一种方式 制定这样的路线 Route get any function return view index gt where any 并让 v
  • 有没有办法使用 Vue-Router 从动态 URL 中删除目录?

    我为一家保险经纪公司构建了一个 vue js Web 应用程序 其中每个代理人都有自己的网站 该网站是根据他们的个人资料生成的 这就是我的 vue router 索引文件中的链接的样子 path agents id name AgentSi
  • 我可以动态创建/销毁 Vue 组件吗?

    因此 我正在创建一个相当复杂的 Vue 应用程序 它从后端 API 获取数据并将其显示在前端 具体取决于用户选择的过滤器 它的默认设置是立即显示所有内容 然后一旦用户选择过滤器 它就会拉出不具有这些属性的 卡片 组件 直到今天 一切都很顺利
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • Vue.js + Element UI:在更改时获取“event.target”

    我无法获取在事件处理程序中触发事件的 html 字段 在 javascript 中是event target 我有一个表格 附加到更改事件函数的输入元素 管理更改事件的函数 我的代码如下 var Main methods change pa
  • Nuxt 3动态组件中根据路由参数进行API调用

    我正在尝试创建一个简单的 Nuxt 3 应用程序用于学习目的 它使用动态路线 https v3 nuxtjs org docs directory structure pages dynamic routes加载页面时从 API 加载数据
  • 如何使用 TypeScript 接口输入 Vue 提示 props?

    这件事真的让我的头撞到了墙上 我记得在 Angular 工作时 TS 接口可用于输入提示参数 我想对 Vue 中的 props 做同样的事情 有任何想法吗 代码如下 但仅针对标准对象进行检查 因此传入任何对象都是有效的 import Vue
  • Vuetify 组件 v-form 对声明的 @submit 事件处理程序没有响应

    我正在使用 Vuetify 和 VueJS 最新版本 这是一个小模板登录 vue
  • vue如何设置嵌套对象的默认道具

    我的道具是这样的 house kitchen sink 我尝试过类似的事情 但没有成功 props house type Object default gt kitchen sink 如何为此类对象设置默认道具 来自文档 对象或数组默认值必
  • Vue 开发样板中的随机错误“以太坊未定义”

    我正在尝试使用 vue cli 创建的 Vue 基本样板在一个非常基本的 Vue3 组件中实现 web3 但我有一些奇怪的错误 首先 这是我的组件的代码
  • Firestore onSnapshot() 方法多次触发

    我有一个带有多个路由和 vuex 的 vue cli 4 应用程序 Firestore 数据库已成功连接 我的应用程序立即反映从 Firestore 控制台应用于数据库的修改 在离开包含与 Firestore 同步 的组件的路线然后返回后
  • 如何为 VueJS 组件创建 v-model 修饰符?

    在VueJS中有一些v model修改预解析绑定值 例如v model trim从字符串中删除空格 如何创建自己的修改器 例如v model myparse今天嗯使用类似的东西 computed name get function retu
  • 实现npm包自定义组件VueJS

    我正在尝试使用以下 npm package 来绕过 X frame 选项 https www npmjs com package x frame bypass https www npmjs com package x frame bypa
  • 如何禁用vuejs中的按钮

    我想在填写表单时禁用该按钮 当所有输入都填满后 将使用 vuejs 和 laravel 框架启用按钮 我尝试通过简单地禁用按钮来实现这一点
  • 过滤输入文本以仅输入数字,甚至不输入小数

    我的目标是用户只输入 0 9 之间的数字 甚至不允许输入小数 怎么做 The code
  • ES6 在defineAsyncComponent 中命名导入

    我想异步加载我的网络应用程序的一些元素 这是旧的导入 import Popover PopoverButton PopoverPanel from headlessui vue export default components Popov
  • 在 vuejs 上将 \n 替换为新行

    我正在尝试将 n 字符替换为来自端点的数据的新行 I tried p item licensedocument legal documentText replace r n r n g br p 并没有奏效 当我将replace 写入问题末
  • 如何在vuetify中设置固定工具栏?

    在 vuetify 中我使用工具栏

随机推荐

  • 生成进度条(动态生成文件,并前端显示生成进度)

    注 1 本文是以生成txt文件为例子 2 写的主要是一个思路 不一点非要是生成txt 可以是其他类型文件 3 本文例子的项目地址 https github com smallsnail wh wh 思路 在前端显示 需要拿到生成的进度 百分
  • 正向代理与方向代理的区别

    之前工作用到了nginx 很好理解反正代理 但是正向代理一直困扰这我 今天终于拨开乌云见晴天 正向代理 代理的是客户端 比如 我不能访问公司的内网 然后使用了vpn登录到跳板机 最后成功访问了就是正向代理 反向代理 代理的是服务端 比如 我
  • 模块独立性的度量(耦合度和内聚度)

    模块独立性的度量 从两个方面来度量模块之间的独立性 这两个概念是模块的耦合度和模块的内聚度 耦合度 耦合度分为 独立耦合 数据耦合 控制耦合 公共耦合 和 内容耦合 独立耦合 指两个模块之间彼此完全独立 没有直接联系 他们之间的联系仅仅在于
  • pandas中pd.read_excel()的用法

    人们经常用pandas处理表格型数据 时常需要读入excel表格数据 很多人一般都是直接这么用 pd read excel 文件路径文件名 再多一点的设置可能是转义一下路径中的斜杠 一旦原始的excel表不是很规整 这样简单读入势必报错 其
  • Ain_电脑所有乱码文字集

    以下是所有电脑上可显示的汉字 谁要是用哪个又通过输入法输不出来 可以从这里找 很简单 就是把int的 19968 至 40869 的数字按字符输出即可 19968 一丁丂七丄丅丆万丈三上下丌不与丏丐丑丒专且丕世丗丘丙业丛东丝丞丟 20000
  • Spring IOC 容器详解

    目录 1 容器的概念 2 如何配置元数据 3 如何实例化一个容器 4 使用容器 1 容器的概念 ApplicationContext 代表 Spring IoC 容器 它负责 Spring Beans 的实例化 配置和组装 容器通过读取配置
  • 查看显卡型号命令

    nvidia smi L 结果
  • 自然语言处理中的Character Embedding技术

    在2013年的时候 Tomas Mikolov提出了word embedding技术来更好的表示一个单词的向量 也就是word2vec 在当时也获得了语法和语义相似度上最好的结果 之后关于doc2vec也被提出来 由此word和doc都有了
  • python 爬虫起步 图片

    import urllib request import gevent from gevent import monkey monkey patch all def download img name img url ret urllib
  • c++ 类

    设计一个Per类 类中包含私有成员 姓名 年龄 指针成员身高 体重 再设计一个Stu类 类中包含私有成员 成绩 Per类对象 p1 设计这两个类的构造函数 析构函数和拷贝构造函数 include
  • 水平分割和毒性逆转的作用

    水平分割和毒性逆转主要是针对动态路由协议RIP中 避免路由环路 提高收敛速度产生的 水平分割产生原因 产生环路的一种情况是 路由器A将从路由器B学习到的路由信息又告诉给了路由器B 最终 路由器B认为通过路由器A能够到达目标网络 路由器A认为
  • 「自控元件及线路」1.1 直流电动机概述

    本节介绍直流电动机的工作原理和基本结构 本节介绍电枢绕组的环形 鼓形结构 波绕组和叠绕组 本节介绍直流电机的换向 文章目录 电机概述 直流电机工作原理 直流电机的额定值 直流电机的基本结构 主磁极 电枢绕组 电枢绕组的绕法 环形绕组 鼓形绕
  • vue 组件清除定时器的问题

    我在a页面写一个定时 让他每秒钟打印一个1 然后跳转到b页面 此时可以看到 定时器依然在执行 这样是非常消耗性能的 如下图所示 解决方法1 首先我在data函数里面进行定义定时器名称 data return timer null 定时器名称
  • ubuntu如何添加一个网卡作为桥接网卡,实现使用双网卡来通过网络与开发板联系

    1 虚拟机如何上网 如何通过网络和开发板联系 双网卡解决 1 NAT网卡 虚拟网卡 2 桥接网卡 真实网卡 NAT网卡用于解决虚拟机上网 桥接网卡用来保证ubuntu可以与开发板互通 注 桥接网卡不是虚拟的 需要真实的网卡 这里建议usb网
  • 彻底卸载VS2010

    网上说使用vs2010 uninstall utility可以完全卸载VS2010 实测并不能完全卸载VS2010 通过手动一个一个删除VS2010的相关组件又太麻烦 发现一个方便的删除方式 其实VS2010已经提供了删除方法 打开控制面板
  • python对postgresql库读取、写入、长连接、制定DDL

    读取PG数据库 方法一 使用psycopg2 import psycopg2 import pandas as pd database user password host port分别对应要连接的PostgreSQL数据库的数据库名 数据
  • linux下C语言中的flock函数用法 .

    表头文件 include
  • 微信小程序 — 网络封装(基础篇一)

    网络请求类封装 const baseUrl https xxx xx xx export default function reqeust params return new Promise resolve reject gt wx req
  • vue项目实现锚点定位功能

    背景 在html中使用id可以简单实现锚点坐标功能 如下 起点 a href mark 起点 a 终点 div 终点 div 但是此时在url中会添加mark 不直接用以上方法的原因主要有二 1 它影响路径 如果做数据提交或其他需要获取当前
  • 讯飞语音转写

    逻辑 语音上传 gt prepare 讯飞 返回一个task id gt 音频分片上传 upload 讯飞 调用多次 直到文件全部上传完成 gt 合并音频merge 讯飞 gt 每三分钟调用getProgress 讯飞 gt 得到结果get