实现自动连续的语音转文字,使用speech_recognition实现静音检测的录音,并使用百度AI开放平台的语音转文字接口将语音转文本

首先新建AipSpeech(百度语音识别的SDK客户端)

""" 百度AI开放平台的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

然后定义语音到文本的功能。

[En]

Then define a function of voice to text.

path = 'voices/voice.wav'

def listen():
    with open(path, 'rb') as fp:
        voice = fp.read()

    result = client.asr(voice, 'wav', 16000, {'dev_pid': 1537})
    try:
        result_text = result["result"][0]
        print(result_text)
    except KeyError:
        print("KeyError")
        print(result)

定义录音的函数


def record_audio(rate=16000):
    r = sr.Recognizer()
    with sr.Microphone(sample_rate=rate) as source:
        print("please say something")
        r.adjust_for_ambient_noise(source)
        audio = r.listen(source,phrase_time_limit=59)
        print('record finish')

    with open("voices/voice.wav", "wb") as f:
        f.write(audio.get_wav_data())

Microphone()的使用方法

实现自动连续的语音转文字,使用speech_recognition实现静音检测的录音,并使用百度AI开放平台的语音转文字接口将语音转文本

实例化Recognize()后调用下面的方法(这里面的r指的就是下面的recognizer_instence)

实现自动连续的语音转文字,使用speech_recognition实现静音检测的录音,并使用百度AI开放平台的语音转文字接口将语音转文本

用speech_recognition模块可以实现有静音识别的录音(还可以与snowboy集成,实现热词识别)

实现自动连续的语音转文字,使用speech_recognition实现静音检测的录音,并使用百度AI开放平台的语音转文字接口将语音转文本

动态调整能量门限,解决环境噪声(自动调整静音检测门限)(使用后效果明显提升)

[En]

Dynamically adjust the energy threshold to solve the ambient noise (automatically adjust the threshold of mute detection) (the effect can be significantly improved after use)

实现自动连续的语音转文字,使用speech_recognition实现静音检测的录音,并使用百度AI开放平台的语音转文字接口将语音转文本
参考手册:https://github.com/Uberi/speech_recognition/blob/master/reference/library-reference.rst

完整代码:

import speech_recognition as sr
from aip import AipSpeech

APP_ID = '18490357'
API_KEY = 'PdZpve6uqC7qg8kgW7LsazWZ'
SECRET_KEY = '4fNWQFkTeyxAku412byYYoRArBDGkiSg'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
path = 'voices/voice.wav'

def record_audio(rate=16000):
    r = sr.Recognizer()
    with sr.Microphone(sample_rate=rate) as source:
        print("please say something")
        r.adjust_for_ambient_noise(source)
        audio = r.listen(source,phrase_time_limit=59)
        print('record finish')

    with open("voices/voice.wav", "wb") as f:
        f.write(audio.get_wav_data())

def listen():
    with open(path, 'rb') as fp:
        voice = fp.read()

    result = client.asr(voice, 'wav', 16000, {'dev_pid': 1537})
    try:
        result_text = result["result"][0]
        print(result_text)
    except KeyError:
        print("KeyError")
        print(result)

if __name__ == "__main__":
    while True:
        record_audio()
        listen()

Original: https://blog.csdn.net/milk_paramecium/article/details/110094565
Author: 喝牛奶的草履虫
Title: 实现自动连续的语音转文字,使用speech_recognition实现静音检测的录音,并使用百度AI开放平台的语音转文字接口将语音转文本

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/526565/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球