腾讯IM web版本实现迅飞语音听写(流式版)

本文基于TUIKit Demo项目集成迅飞语音听写(流式版)功能:

主要代码:

复制代码
// \src\TUIKit\components\TUIChat\message-input\index.vue
<template>
	<!-- 录音按钮 -->
	<div @touchstart.stop="touchstart" />
	<!-- 输入框 -->
	<MessageInputEditor  ref="editor"/>
</template>

<script setup lang="ts">
// xf-voice代码请参考本文附件
import { IatRecorder } from './xf-voice'

let xfVoice = null

const getPermission = () => {
return navigator.mediaDevices.getUserMedia({ audio: true })
}

const initXFVoice = (webSocketUrl) => {
    // 实例化迅飞语音听写(流式版)WebAPI
    let times = null
    xfVoice = new IatRecorder({
      APPID: '填写自己的APPID',
      webSocketUrl,
      onWillStatusChange: function (oldStatus, newStatus) {
      },
      onTextChange: function (text, sliceText) {
          //监听识别结果的变化
          if(sliceText) {
            xfVoiceWaiting.value = false
            editor.value.setEditorContent(sliceText)
          }
      }
    });
}

const touchstart = (event: any) => {
	// 获取网页录音授权
	getPermission().then(() => {
      xfVoice?.start()
    }, (error) => {
        console.log(`${error.name} : ${error.message}`);
    })
}

onMounted(() => {
 // getXFVoiceAuthUrl请求获取webSocket鉴权地址,接口需要后端提供
  getXFVoiceAuthUrl({}).then(res => {
    if(res?.data?.code == 200) {
      initXFVoice(res.data.data.url)
    } else {
      console.error('语音授权认证失败)
    }
  }).catch((e) => {
    console.error(e)
  })
})

</script>

对于uniapp 微信小程序版本的实现,后续文章会给出。

相关推荐
齐尹秦6 分钟前
CSS 文本样式学习笔记
前端
程序员皮蛋鸽鸽9 分钟前
从零配置 Linux 与 Windows 互通的开发环境
前端·后端
kovli13 分钟前
红宝书第十二讲:详解JavaScript中的工厂模式与原型模式等各种设计模式
前端·javascript
凯哥197013 分钟前
Sciter.js 指南-核心概念:GUI应用程序项目结构、视图切换与组件化
前端
jinzunqinjiu15 分钟前
学习react-native组件 1 Image加载图片的组件。
前端·react native
用户9623373845017 分钟前
CSS基础知识03
前端
SouthernWind17 分钟前
DeepSeek AI 聊天助手集成指南
前端·cursor
咪库咪库咪18 分钟前
表单验证
前端
xcLeigh40 分钟前
HTML5好看的水果蔬菜在线商城网站源码系列模板5
java·前端·源码·html5
进取星辰1 小时前
6、事件处理法典:魔杖交互艺术——React 19 交互实现
前端·react.js·交互