python调用百度语音(语音识别-斗地主语音记牌器)

一、概述

本篇简要介绍百度语音语音识别的基本使用(其实是斗地主时想弄个记牌器又没money,抓包什么的又不会,只好搞语音识别的了)

二、创建应用

打开百度语音官网产品与使用->语音识别->立即使用->创建应用

出现如下页面

依照提示依次填写,最终结果

(ps:我就想弄个记牌的,就起了个计数器的名)

点右方的 ‘查看key’ 记下App ID,API Key,Secret Key。接下来要用到

需要安装模块

pip install baidu-aip
pip install pyaudio

语音识别代码

from aip import AipSpeech
""" 你的 APPID AK SK """
APP_ID = ‘你记下的APP_ID‘
API_KEY = ‘你记下的API_KEY‘
SECRET_KEY = ‘你记下的SECRET_KEY‘
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

# 读取文件
def get_file_content(filePath):
    with open(filePath, ‘rb‘) as fp:
        return fp.read()
# 识别本地文件
li=client.asr(get_file_content(‘01.pcm‘), ‘pcm‘, 8000, {
    ‘lan‘: ‘zh‘,
})

print(li)
# 从URL获取文件识别
# client.asr(‘‘, ‘pcm‘, 16000, {
#     ‘url‘: ‘http://121.40.195.233/res/16k_test.pcm‘,
#     ‘callback‘: ‘http://xxx.com/receive‘,
# })

python录音代码

import wave
from pyaudio import PyAudio,paInt16

framerate=8000
NUM_SAMPLES=2000
channels=1
sampwidth=2
TIME=2
def save_wave_file(filename,data):
    ‘‘‘save the date to the wavfile‘‘‘
    wf=wave.open(filename,‘wb‘)
    wf.setnchannels(channels)
    wf.setsampwidth(sampwidth)
    wf.setframerate(framerate)
    wf.writeframes(b"".join(data))
    wf.close()

def my_record():
    pa=PyAudio()
    stream=pa.open(format = paInt16,channels=1,
                   rate=framerate,input=True,
                   frames_per_buffer=NUM_SAMPLES)
    my_buf=[]
    count=0
    while count<TIME*5:#控制录音时间
        string_audio_data = stream.read(NUM_SAMPLES)
        my_buf.append(string_audio_data)
        count+=1
        print(‘.‘)
    save_wave_file(‘01.pcm‘,my_buf)
    stream.close()

chunk=2014
def play():
    wf=wave.open(r"01.pcm",‘rb‘)
    p=PyAudio()
    stream=p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=
    wf.getnchannels(),rate=wf.getframerate(),output=True)
    while True:
        data=wf.readframes(chunk)
        if data=="":break
        stream.write(data)
    stream.close()
    p.terminate()

if __name__ == ‘__main__‘:
    my_record()
    print(‘Over!‘)
    play()

效果如下图:

帮助文档:

百度语音帮助文档or手册

三、后记

本代码未完全实现,有兴趣可自行整理,玩斗地主的时候声音可能要大点,因为识别有时候会报3001错误,音频质量过差,不过被打可别找我

原文地址:https://www.cnblogs.com/qflyue/p/8489541.html

时间: 2024-11-08 22:57:23

python调用百度语音(语音识别-斗地主语音记牌器)的相关文章

[视觉] 基于YoloV3的实时摄像头记牌器

基于YoloV3的实时摄像头记牌器 最终效果 数据准备 数据获取 从摄像头拍摄各种牌型的视频各20秒,不采用人工打标签,而是通过识别出牌的边缘,将牌经过仿射变换矫正,根据牌的实际宽高以及标注位置的实际宽高得到标注位置.通过随机生成背景图片,并且将牌在背景中随机旋转和平移,去掉标注部分被遮挡的生成图片,同时将label也做同样的变换,完成数据集的获取. 先定义好将识别到的卡片zoom到我们希望的宽高: cardW=57#实际宽度 cardH=87#实际高度 cornerXmin=2 #牌的号码距左

Python调用百度接口(情感倾向分析)和讯飞接口(语音识别、关键词提取)处理音频文件

本示例的过程是: 1. 音频转文本 2. 利用文本获取情感倾向分析结果 3. 利用文本获取关键词提取 首先是讯飞的语音识别模块.在这里可以找到非实时语音转写的相关文档以及 Python 示例.我略作了改动,让它可以对不同人说话作区分,并且作了一些封装. 语音识别功能 weblfasr_python3_demo.py 文件: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 讯飞非实时转写调用demo(语音识别)

Python 调用百度翻译API

由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu api 整了一下,和大家分享. 1.百度翻译api 由于百度翻译api需要用到API key,所以,得注册百度开发者账号,然后创建开发者服务工程,得到的授权API key,具体操作可查看官方文档,请点 百度翻译api 2.代码实现  基本思路是:先将用户反馈抓下来,然后再处理html标签,再调用百度

用python实现的简易记牌器的demo

实现功能很简单: 初始时 1到10 以及 jkq各 4张,大小王 共两张 只要输入相应的牌号:1到10,例如 >>1     J.K.Q :例如>>j     >>大小王 此时相应的牌的数目会减少1 由此可以看出斗地主时候别人手里的牌还剩哪些. 上原始代码,没有做GUI,这个只是一个演示的demo: #有1--10.J.Q.K各四张以及大小王,现在初始除了大小王以外均为4张,每次输入一个就会减少一. def init(num,j,k,q,king): num.appen

python调用百度语音识别接口实时识别

1.本文直接上干货 奉献代码:https://github.com/wuzaipei/audio_discern/tree/master/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB 2.安装依赖包 pip install 依赖包路径 3.具体步骤见下 安装百度语音识别SDK pip install baidu-aip 安装Python音频处理库 PyAudio python -m pip install pyaudio 安装鼠标控制库 PyUserInput pip

python调用百度api应用--小小翻译器

urllib库的使用 urllib库是python标准库中最常用的PYthon网页访问的模块,它可以让用户像访问本地文本文件一样读取网页的内容. urlib.request模块:用来打开和读取url urlib.error模块:包含一些由urlib.request产生的错误,可用try进行捕捉 urlib.parse模块:包含一些解析url的方法 urlib.robotparser模块:用来解析robots.txt文本文件 案例小小翻译器: 设计思路: 1.使用百度翻译向http://api.f

Python调用百度地图API(路线规划、POI检索)——第一部分

项目的目的是为了查询某个点附近某些POI的最近距离,例如查询天安门到附近最近的商场的距离(时间) 1.百度地图API 程序中用到百度地图的两个API,分别是 (1)路线规划服务(又名Direction API):http://lbsyun.baidu.com/index.php?title=webapi/direction-api-v2 (2)地点检索服务(又名Place API):http://lbsyun.baidu.com/index.php?title=webapi/guide/webs

Python 调用 百度翻译 出现error997 的解决办法

如果程序不报错,其主要原因是百度防爬虫,可能是因为电脑网页版本的百度翻译防爬所致,换用手机版本的百度翻译暂时可行.这也是很多视频都是用手机版百度翻译来讲解的原因: 大多数换用手机版的也会报997错误,或许是手机也防爬虫了吧,如果用get的方法来爬虫是可以的,但是使用post方法是会报997错误的 以下是我的get方法的爬虫代码,大佬们别喷,我刚学: import pprint import requests url = "http://www.baidu.com" response =

python调用百度API

from urllib.request import urlopen import requests import json url = "http://apis.baidu.com/txapi/mvtp/meinv" #API req = requests.get(url) headers= {'apikey':'自己的apikey'} #自己的apikey params = {'num':'5'} #请求参数(urlParam) : r = requests.get(url,par