当前位置:   article > 正文

最方便的离线python实时中文语音识别!_from vosk import model, kaldirecognizer, setloglev

from vosk import model, kaldirecognizer, setloglevel

废话不多说,直接上代码,先安装环境
需要安装的包:

json 
pyaudio 
numpy 
vosk 
  • 1
  • 2
  • 3
  • 4

新建一个py文件写入

import json
import pyaudio
import numpy as np
from vosk import Model, KaldiRecognizer, SetLogLevel

def SaveWave(model):
    # 设置音频参数
    FORMAT = pyaudio.paInt16    # 音频流的格式
    RATE = 44100                # 采样率,单位Hz
    CHUNK = 4000                # 单位帧
    THRESHOLDNUM = 30           # 静默时间,超过这个个数就保存文件
    THRESHOLD = 100             # 设定停止采集阈值

    audio = pyaudio.PyAudio()
    stream = audio.open(format=FORMAT,
                        channels=1,
                        rate=RATE,
                        input=True,
                        frames_per_buffer=CHUNK)
    frames = []
    print("开始录音...")
    count = 0
    while count < THRESHOLDNUM:
        data = stream.read(CHUNK, exception_on_overflow=False)
        np_data = np.frombuffer(data, dtype=np.int16) 
        frame_energy = np.mean(np.abs(np_data))
        # print(frame_energy)
        # 如果能量低于阈值持续时间过长,则停止录音
        if frame_energy < THRESHOLD:
            count += 1
        elif count > 0:
            count -= 1

        frames.append(data)
    print("停止录音!")
    stream.stop_stream()
    stream.close()
    audio.terminate()

    rec = KaldiRecognizer(model, RATE)
    rec.SetWords(True)
    str_ret = ""
    for data in frames:
        if rec.AcceptWaveform(data):
            result = json.loads(rec.Result())
            if 'text' in result:
                str_ret += result['text']

    result = json.loads(rec.FinalResult())
    if 'text' in result:
        str_ret += result['text']

    str_ret = "".join(str_ret.split())
    return str_ret


if __name__ == "__main__":
    model = Model("vosk-model-small-cn-0.22")
    SetLogLevel(-1)

    while 1:
        res = SaveWave(model)
        if res != "" and res != None:
            print(res)
        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65

下载
https://alphacephei.com/vosk/models/vosk-model-small-cn-0.22.zip

并解压到和上述文件同目录下并开始运行即可!

运行效果:

开始录音...
停止录音
我说一句话
  • 1
  • 2
  • 3

方便救急,比配其他环境快得多,5分钟就能跑起来!!!

给出一个比较大的模型:
https://alphacephei.com/vosk/models/vosk-model-cn-0.15.zip
替换路径即可

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1002244
推荐阅读
相关标签
  

闽ICP备14008679号