如何实现HTML5语音识别功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现HTML5语音识别功能相关的知识,希望对你有一定的参考价值。

参考技术A

目前这个功能据说只有google的chrome 11+浏览器支持。

具体实现:添加了指定属性的文本输入框。如:<input

x-webkit-speech />,即可看到如下效果:



如果想指定语言类别,还可以增加lang属性,如:<input
x-webkit-speech lang="zh-CN"
/>。以及表示语法的(据说bUIltin:search可以过滤助词,不过我没测试过):<input x-webkit-speech x-webkit-grammar="bUIltin:search" />

还有一个onwebkitspeechchange的方法,发生在语言识别成功,且文字输入到文本框后触发。

input.onwebkitspeechchange = function()
// ...
;

本回答被提问者采纳
参考技术B 如果想指定语言类别,还可以增加lang属性,如:<inputx-webkit-speech lang="zh-CN"/>。以及表示语法的(据说bUIltin:search可以过滤助词):<input x-webkit-speech x-webkit-grammar="bUIltin:search" />
还有一个onwebkitspeechchange的方法,发生在语言识别成功,且文字输入到文本框后触发。
参考技术C

使用html进行语音识别,不如借助专业的语音识别软件,真的;

专业的语音识别软件,使用起来放心,比如说下面的这款带有语音识别功能的软件;

第一:打开文字识别工具(推荐迅 捷ocr文字识别软件),选择上面的语音识别功能;

第二:通过左上角的添加文件,将需要识别的语音文件添加进去;

第三:最后点击右边的开始识别按钮,就等待着完成了。

等不了多久的,只需要几秒钟便可以了,希望上面的叙述可以帮助到您!

基于百度语音识别API的Python语音识别小程序

一、功能概述

实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能。
在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换。
工作示例:

二、软件环境

  • 操作系统:win10

  • 语言:Python 版本:3.6.0

  • Python库:AipSpeech(百度语音识别SDK客户端),wave,PyAudio,paInt16

    Python库安装:除百度为:pip install baidu-aip,其他直接 pip install *(库名) 即可。

三、原理概述

利用wave,PyAudio搭建一个wav格式的简易录音机,基于百度API进行wav格式的音频转文本。

  • 简易录音机类(WWAV)有__save_wave_file音频文件保存方法与my_record音频录制方法。在录制音频的方法中,加入了有效音频测试的代码,可以测试一小段时间内是否有有效音频输入,否则退出音频录制。
  • 转换类(Translation)则为__get_file_content方法与get_word音频转换主方法。

四、核心代码

my_record音频录制方法(WWAV类)

def my_record(self,TIME = 60,INTERVAL = 5):
    \'\'\'录制并保存音频文件,TIME录制时间,INTERVAL测试间隔\'\'\'
    pa=PyAudio()
    tr = Translation()
    stream=pa.open(format = paInt16,channels=self.__channels,
                   rate=self.__framerate,input=True,
                   frames_per_buffer=self.__NUM_SAMPLES)
    my_buf=[] # 主音频源
    buf=[] # 测试音频源
    i=0
    while i < TIME*2: #控制录音时间
        string_audio_data = stream.read(self.__NUM_SAMPLES)  # 获取音频片段
        my_buf.append(string_audio_data)
        
        if i < INTERVAL*2:
            buf.append(string_audio_data)
            i += 1
        elif i == INTERVAL*2:
            self.__save_wave_file(\'00.wav\',buf) # 保存测试音频
            err,a = tr.get_word(\'00.wav\') # 得到测试音频是否有效
            if err == 0:
                break
            i = 0 # 初始化
            buf = [] # 同上
    
        print(\'.\',end = \' \')
    self.__save_wave_file(\'01.wav\',my_buf)
    stream.close()

get_word音频转换方法(Translation类)

def get_word(self,filePath):
    \'\'\'音频转文字,参数filePath为wav音频地址,返回双值:状态(1为转换成功)及转换后文本或错误信息\'\'\'
    word = self.__client.asr(self.__get_file_content(filePath),\'wav\',8000,{
        \'lan\': \'zh\'
        }) # 参数:语音对象,文件格式,采样率,语种类型

    if word[\'err_no\'] == 0: # 错误值为0(即正确)
        return 1,word[\'result\'][0] # 返回 1 与 文本信息
    else:
        return 0,word[\'err_no\'] # 否则返回 0 与 错误内容

源码

GitHub地址

附:我又回来了,这个是不是大项目,正在写,敬请期待!寒假会更一些学习笔记,一起加油

以上

以上是关于如何实现HTML5语音识别功能的主要内容,如果未能解决你的问题,请参考以下文章

如何实现离线语音控制

使用APICloud & 科大讯飞SDK快速实现语音识别功能

利用微软认知服务实现语音识别功能

在ubuntu上利用科大讯飞的SDK实现语音识别-语义识别等功能

基于百度语音识别API的Python语音识别小程序

浏览器中的语音识别功能