vue實現(xiàn)錄音并轉(zhuǎn)文字功能包括PC端web手機(jī)端web(實現(xiàn)過程)
vue實現(xiàn)錄音并轉(zhuǎn)文字功能,包括PC端,手機(jī)端和企業(yè)微信自建應(yīng)用端
不止vue,不限技術(shù)棧,vue2、vue3、react、.net以及原生js均可實現(xiàn)。
原理
瀏覽器實現(xiàn)錄音并轉(zhuǎn)文字最快捷的方法是通過Web Speech API來實現(xiàn),這是瀏覽器內(nèi)置示例的api方法,可以直接調(diào)用,無需引入任何依賴包,唯一需要注意的是瀏覽器的兼容性,具體可查看官方文檔
鏈接: Web Speech API
實現(xiàn)過程
<template> <button @click="toggleSpeechRecognition ">{{ isSpeaking?'開始':'停止' }}錄音</button> <span>{{ prompt }}</span> </template> <script setup lang="ts"> import { ref } from 'vue' //測試語音識別 const prompt = ref('') const isSpeaking = ref(false); let recognition: any = null; let finalResult = ''; // 保存最終結(jié)果的變量 let interimResult = ''; // 保存中間結(jié)果的變量 const toggleSpeechRecognition = () => { if (!recognition) { recognition = new webkitSpeechRecognition(); recognition.continuous = true; recognition.interimResults = true; recognition.lang = 'zh-CN'; recognition.onresult = event => { interimResult = ''; // 清空中間結(jié)果 for (let i = event.resultIndex; i < event.results.length; i++) { if (event.results[i].isFinal) { finalResult += event.results[i][0].transcript; } else { interimResult += event.results[i][0].transcript; } } prompt.value = finalResult + interimResult; }; } if (isSpeaking.value) { finalResult = ''; recognition.stop(); } else { recognition.start(); } isSpeaking.value = !isSpeaking.value; }; </script>
避坑指南
1.http問題導(dǎo)致錄音失?。何蚁嘈?9.9%的人本地開發(fā)環(huán)境啟動的都是http,當(dāng)前主流瀏覽器出于安全考慮禁止http的應(yīng)用調(diào)用麥克風(fēng),需要在瀏覽器高級設(shè)置中添加白名單,具體操作為:
chrome瀏覽器地址欄中輸入chrome://flags/#unsafely-treat-insecure-origin-as-secure,回車,在Insecure origins treated as secure這欄中添加你的應(yīng)用地址,將該選項置為Enabled,然后點擊右下角彈出的Relaunch按鈕。
edge瀏覽器打開:edge://flags/#unsafely-treat-insecure-origin-as-secure,同上。
這里需要注意的是,你的電腦需要有音頻錄入設(shè)備,檢查順序為:先檢查電腦是否有音頻錄入設(shè)備(是否正常)-> 再添加瀏覽器安全白名單。
2.應(yīng)用是否被其他規(guī)則限制調(diào)用麥克風(fēng)
1.iframe內(nèi)部應(yīng)用不允許直接調(diào)用麥克風(fēng),只能通過postMassage實現(xiàn)iframe內(nèi)外部通信,調(diào)用外部系統(tǒng)的方法來調(diào)用麥克風(fēng),具體我會在單獨的文章將iframe內(nèi)外部通信;
2.如果應(yīng)用嵌在企微工作臺或類似的平臺中,麥克風(fēng)權(quán)限首先受企微等平臺的權(quán)限管控,一般都需要調(diào)用企微官方api來實現(xiàn)類似功能。
到此這篇關(guān)于vue實現(xiàn)錄音并轉(zhuǎn)文字功能,包括PC端web,手機(jī)端web的文章就介紹到這了,更多相關(guān)vue錄音轉(zhuǎn)文字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue-content-loader內(nèi)容加載器的使用方法
這篇文章主要介紹了vue-content-loader內(nèi)容加載器的使用方法,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08Element-UI介紹主題定制、自定義組件和插件擴(kuò)展的代碼示例
本文介紹了使用Element-UI實現(xiàn)主題定制、自定義組件和擴(kuò)展插件的方法和實用案例,在開發(fā)過程中,我們可以根據(jù)自己的需求,靈活選擇相關(guān)的技術(shù)手段,并不斷探索和嘗試,以提高開發(fā)效率和用戶體驗,感興趣的朋友跟隨小編一起看看吧2024-02-02構(gòu)建Vue大型應(yīng)用的10個最佳實踐(小結(jié))
這篇文章主要介紹了構(gòu)建Vue大型應(yīng)用的10個最佳實踐(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Vue項目如何根據(jù)圖片url獲取file對象并用axios上傳
這篇文章主要介紹了Vue項目如何根據(jù)圖片url獲取file對象并用axios上傳問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09vue2.0結(jié)合Element-ui實戰(zhàn)案例
這篇文章主要介紹了vue2.0結(jié)合Element-ui實戰(zhàn)案例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03