【无标题】

1.基于百度API的普通话识别

1.1语音识别

语音识别,就是将一段语音信号转换成相对应的文本信息,系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分,此外为了更有效地提取特征往往还需要对所采集到的声音信号进行滤波、分帧等音频数据预处理工作,将需要分析的音频信号从原始信号中合适地提取出来。
一般流程:
在这里插入图片描述

 

1.2百度API调用方法

通过在百度智能开发平台,建立语音技术等应用,会获取相对技术权限功能。

在这里插入图片描述

 创建完毕后百度会给你一个应用列表,使用这里的AppID,API Key及Secret Key便可以进行API的调用。

import wave
import pyaudio
from aip import AipSpeech
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
CHUNK = 1024 
FORMAT = pyaudio.paInt16 # 16位深
CHANNELS = 1 #1是单声道,2是双声道。
RATE = 16000 # 采样率,调用API一般为8000或16000
#RECORD_SECONDS = 10 # 录制时间10s

def save_wave_file(pa, filepath, data):
    wf = wave.open(filepath, 'wb')
    wf.setnchannels(CHANNELS)
    wf.setsampwidth(pa.get_sample_size(FORMAT))
    wf.setframerate(RATE)
    wf.writeframes(b"".join(data))
    wf.close()

def get_audio(filepath):
    #isstart = input("是否开始录音?(0为退出 1为开始)")
    while(True):
        isstart = input("是否开始录音?(0为退出 1为开始)")
        if isstart == "1":
            pa = pyaudio.PyAudio()
            stream = pa.open(format=FORMAT,
                         channels=CHANNELS,
                         rate=RATE,
                         input=True,
                         frames_per_buffer=CHUNK)
            print("*" * 10, "开始录音:请输入录制的时长(s)")
            RECORD_SECONDS = float(input())
            frames = []  
            for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):  
                data = stream.read(CHUNK)  # 读取chunk个字节 保存到data中
                frames.append(data)  # 向列表frames中添加数据data
            print("*" * 10, "录音结束\n")
            stream.stop_stream()
            stream.close()  # 停止数据流
            pa.terminate()  # 关闭PyAudio

        #写入录音文件
            save_wave_file(pa, filepath, frames)
            break
        elif isstart == "0":
            exit()
            break
        else:
            print("无效输入,请重新选择")
            get_audio()
            break
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

if __name__ == '__main__':
    filepath = 'test.wav'
    get_audio(filepath)
    print('over!!!')
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    result = client.asr(get_file_content('test.wav'), 'wav',16000,{'dev_pid': 1537,})
    data=tuple(result['result'])#关键字变量
    print(result['result'])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值