python语音聊天_语音聊天实现

前言

这几天看了点PyQt相关的知识,感觉可以结合之前得一些内容做出点什么好玩的东西。

之前做过文本转语音的聊天机器人,昨天又恰好做了关于音频处理的。借此机会,整合一下,来做个有界面的语音文本聊天机器人好了。

先来看看最终的效果图。

文本语音聊天机器人效果图

对这些基础内容不是很了解的可以参考我之前的文章。

环境

环境搭建是个坑,之前一直在用的pyttsx语音引擎竟然不支持Python36,只能在Python27版本使用。所以无奈只能选用微软的提供的win32com.client了。

本机环境

本机环境如下

Windows10 64位

Python36

PyCharm pro

所需包

所需包一开始我是手动统计的,但是后来觉得版本这块最好还是精确一下,于是使用了pip的一个freeze命令。

pip freeze > requirements.txt

得到了下面的这些所需的库文件(我删除了一些没用到的)。

PyAudio==0.2.11

PyQt5==5.8.2

pyttsx==1.1

pywin32==221

requests==2.13.0

sip==4.19.2

各大模块

下面开始针对各大模块简要的介绍一下。

百度语音接口

百度语音接口是用来处理本地音频到文本内容转换而使用的。需要用到标准库中的wave库,来处理.wav音频文件。

# coding: utf8

# @Author: 郭 璞

# @File: baiduyuyin.py

# @Time: 2017/5/11

# @Contact: 1064319632@qq.com

# @blog: http://blog.csdn.net/marksinoberg

# @Description: 借助百度语音识别接口实现本地语音解析

import pyaudio

import wave

import requests

import json

class BaiDuYuYin(object):

def __init__(self):

# get the token

self.token = self.gettoken()

def gettoken(self):

try:

apiKey = "Ll0c嘿嘿2ZSGAU"

secretKey = "44c8a这个不能说34936227d4a19dc2"

auth_url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + apiKey + "&client_secret=" + secretKey

response = requests.get(url=auth_url)

jsondata = response.text

return json.loads(jsondata)['access_token']

except Exception as e:

raise Exception("Cannot get the token, the reason is {}".format(e))

def parse(self, wavefile='local.wav'):

"""

返回音频文件对应的文本内容。

注意返回的是列表类型的数据,待会处理的时候要格外的小心。

:param wavefile:

:return:

"""

try:

fp = wave.open(wavefile, 'rb')

# 已经录好音的音频片段内容

nframes = fp.getnframes(

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值