web浏览器端实现语音转文字或文字转语音

web浏览器端语音转文字demo
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>语音转文字</title>
    <style>
        textarea {
            width: 100%;
            height: 50px;
        }
    </style>
</head>
<body>
    <div>
        <textarea shape="" coords="" href="" alt="" id="area" placeholder="请说点什么..."></textarea>
        <button id="speek">麦克风</button>
        <button id="addBtn">发布</button>
        <ul id="text"></ul>
    </div>

    <script>
        window.onload = () => {
            console.log('页面加载完毕');
            const area = document.querySelector('#area');
            const speek = document.querySelector('#speek');
            const addBtn = document.querySelector('#addBtn');
            const text = document.querySelector('#text');
            const recognition = new webkitSpeechRecognition();
            let isSpeek = false;

            recognition.continuous = true;
            recognition.interimResults = true;
            recognition.lang = 'zh-CN';
            recognition.onresult=function(event) {
                console.log(event, 'event')
                let result = ''
                for(let i = event.resultIndex;i <= event.resultIndex; i++) {
                    if (event.results[i].isFinal) {
                        result += event.results[i][0].transcript;
                    }
                }
                area.value = result
            }

            speek.addEventListener('click', () => {
                if(isSpeek) {
                    recognition.stop();
                    isSpeek = false;
                    return;
                }
                recognition.start();
                isSpeek = true;
            })

            addBtn.addEventListener('click', () => {
                const li = document.createElement('li');
                li.textContent = area.value;
                text.appendChild(li);
                area.value = '';
            })

        }

    </script>
</body>
</html>

web浏览器实现文字转语音播报demo:
<template>
  <div>
    <button @click="playVoice">播放语音</button>
  </div>
</template>
<script>
const synth = window.speechSynthesis
const msg = new SpeechSynthesisUtterance()
export default {
  data() {
    return {};
  },
  mounted(){
    
  },
  methods: {
    playVoice() {
      this.handleSpeak('小朋友,你是否有很多问号') // 传入需要播放的文字
    },
    // 语音播报的函数
    handleSpeak(text) {
      msg.text = text;     // 文字内容: 小朋友,你是否有很多问号
      msg.lang = "zh-CN";  // 使用的语言:中文
      msg.volume = 1;     // 声音音量:1
      msg.rate = 1;        // 语速:1
      msg.pitch = 1;       // 音高:1
      synth.speak(msg)    // 播放
    },
    // 语音停止
    handleStop(e) {
      msg.text = e
      msg.lang = "zh-CN"
      synth.cancel(msg)
    }
  }
};
</script>

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者 删除。
笔者:苦海123
其它问题可通过以下方式联系本人咨询:
QQ:810665436
微信:ConstancyMan

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在 React 应用程序中实现语音文件文字,你需要使用 Web Speech API。这个API是现代浏览器的一部分,可以让你使用JavaScript来处理语音识别。 以下是一个简单的React组件,它允许用户上传语音文件并将其换为文字: ```jsx import React, { useState } from 'react'; const SpeechToText = () => { const [text, setText] = useState(''); const handleFileUpload = (event) => { const file = event.target.files[0]; const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => { const audio = new Audio(reader.result); const recognition = new webkitSpeechRecognition(); recognition.lang = 'en-US'; recognition.interimResults = false; recognition.maxAlternatives = 1; recognition.onresult = (event) => { const result = event.results[0][0].transcript; setText(result); }; recognition.onerror = (event) => { console.error(event.error); }; audio.oncanplaythrough = () => { audio.play(); recognition.start(); }; }; }; return ( <div> <input type="file" accept="audio/*" onChange={handleFileUpload} /> <p>{text}</p> </div> ); }; export default SpeechToText; ``` 这个组件有一个文件上传按钮,用户可以选择上传语音文件。当用户上传文件时,组件会使用FileReader API将音频文件读取到内存中,并创建一个新的Audio对象来播放音频。然后,组件使用webkitSpeechRecognition API来识别音频中的文字。当识别完成时,组件将文本显示在页面上。 请注意,这个组件使用了webkitSpeechRecognition API,这意味着它只能在WebKit浏览器(如Chrome和Safari)中使用。如果你需要在其他浏览器中使用语音识别,你需要使用其他API,如SpeechRecognition API。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦海123

快乐每一天!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值