python实现类似Siri的AI语音聊天机器人(需要图灵机器人和百度语音合成的API)

使用 Python 实现一个简单的智能聊天机器人 简要说明 最近两天需要做一个python的小程序, 就是实现人与智能机器人(智能对话接口)的对话功能,目前刚刚测试了一下可以实现, 就是能够实现个人与机器的智能对话(语音交流)。 总体的思路 大家可以设想一下, 如果要实现人与机器的智能对话, 肯定要有以下几个步骤: 计算机接收用户的语音输入 将用户输入的语音输入转化为文本信息 调用智能对话接口, 发送请求文本信息, 获取接口返回的智能回答文本信息 将回答文本信息转化为语音格式输出 这里可以安装很多现成的库函数, 阅读详情

程序简介:模仿Siri,参考微信公众号:学习python的正确姿势,在语音播放和搜索的基础上,增加了语音输入和打开常用软件功能。

一、配置

  • Windows10系统
  • python3.7
  • pycharm

(其实这些都不重要)

二、主要体系框架

(1)图灵机器人API

自己做一个生动的能聊天的机器人太麻烦了,不过图灵机器人已经帮我们做好了,而且提供了开放的接口,我们注册一个,使用它的接口就可以轻松实现,链接在下方:

图灵机器人官网

注册登录后,如下图所示创建机器人创建机器人

创建好后你就拥有了这样一个语音聊天机器人:
机器人API

你还可以在“人物设置”栏里设置它的名字,性别,年龄之类的
还挺别致。。
人物设置
这个不重要,我们看看它的API使用文档,了解一下怎么用的
图灵文档
嗯,好像很简单的亚子!
不管了,赶紧来试一下。。

import requests
import json

urls = 'http://openapi.tuling123.com/openapi/api/v2'	# 图灵接口的url
api_key = "!!!这里要用你自己的api密钥!!!"

prologue = "主人您好,我是Niubility,爱你哦~"	# 定义开场白
count = 1	# 用来计数输入的次数

# 回复
def respond(data):
	data_dict = {
      "reqType":0,
        "perception": {
            "inputText": {
                "text": data
            },
        },
        "userInfo": {
            "apiKey": api_key,
            "userId": "584403"
        }
    }
    result = requests.post(urls, json=data_dict)
    content = (result.content).decode('utf-8')
    # print(content)
    ans = json.loads(content)
    text = ans['results'][0]['values']['text']
    print('Niubility:',text)    # 机器人取名就叫Niubility

if __name__ == "__main__":
	print("Niubility:", prologue)
	while True:
		data = input('{}//你:'.format(count))  # 输入对话内容
		respond(data)
		count += 1
    

运行一下:
在这里插入图片描述
阔以阔以!!!
第一步,图灵机器人API就这样解决了,下一步!
(图灵未认证用户一天只能聊三句话,认证之后一天可以聊100句,我们只要学习它的用法就可以了)

(2)百度语音合成API

同样百度提供了开放的语音合成API,我们也注册一个吧,很简单,网址:

百度智能云官网

方法和上面图灵机器人差不多
注册完成之后是这样的:
在这里插入图片描述
查阅官方文档,用法差不多,有语音合成和语音识别两种,我们这里先完成语音合成吧,官方文档整理的很好:
百度语音合成api1
百度语音合成api2
试一下

首先要下载它的库:

pip3 install baidu-api

然后我们给他定义成方法,传入参数text为要语音合成的文字

import os
import playsound	# 播放音频的库
from aip import AipSpeech		# 百度语音的api

""" 你的 APPID AK SK """
APP_ID = '!!!你的 App ID!!!'
API_KEY = '!!!你的 Api Key!!!'
SECRET_KEY = '!!!你的 Secret Key!!!'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

# 语音合成
def speak_(text):
    result = client.synthesis(text, 'zh', 1, {
        'vol': 5,
        'per': 0,
        'spd': 5,
        'pit': 5
    })

    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open('audio.mp3', 'wb') as f:
            f.write(result)
        playsound.playsound('audio.mp3')	# 播放
        os.remove('audio.mp3')		# 放完后删除音频文件,否则第二次会无法写入

再在respond(data)方法最后一行调用speak_(text)即可播放语音

(3)键盘监听+录音+保存wav文件

语音输入这部分我想实现的目标功能是:按一下键盘空格键开始录音,再按一下空格键录音结束,然后保存为一个.wav文件

1. 键盘监听

键盘监听我用的是pynput库
基本用法:

from pynput.keyboard import Listener


def check_input():
    with Listener(on_press=press) as listener:
        listener.join()

def press(key):
    # print(key.char)	# 按下键盘的操作,例如打印出按下的字符
    pass

2. 录音

录音我用的是pyaudio库

基本用法:

import pyaudio


"""pyaudio参数"""
CHUNK = 1024    # 数据包或者数据片段
FORMAT = pyaudio.paInt16    # pyaudio.paInt16表示我们使用量化位数 16位来进行录音
CHANNELS = 1    # 声道,1为单声道,2为双声道
RATE = 16000    # 采样率,每秒钟16000次
# RECORD_SECONDS = 5  # 录音时间

def recoder():
    _frames = []
    p = pyaudio.PyAudio()
    stream = p.open(channels=CHANNELS,
                    format=FORMAT,
                    rate=RATE,
                    input=True,
                    frames_per_buffer=CHUNK)
    while 1:
        data = stream.read(CHUNK)
        _frames.append(data)

    stream.stop_stream()
    stream.close()
    p.terminate()

需要注意的是,后面用到的百度语音识别双声道识别效果很差,设置单声道后就很好了,所以设置CHANNELS=1

还有后面用到的百度语音识别只支持16000采样率,所以RATE设置为16000

3. 保存.wav文件

用到wave库
结合pyaudio,基本用法:

import wave
import pyaudio


"""pyaudio参数"""
CHUNK = 1024    # 数据包或者数据片段
FORMAT = pyaudio.paInt16    # pyaudio.paInt16表示我们使用量化位数 16位来进行录音
CHANNELS = 1    # 声道,1为单声道,2为双声道
RATE = 16000    # 采样率,每秒钟16000次
# RECORD_SECONDS = 5  # 录音时间

def recoder():
    _frames = []
    p = pyaudio.PyAudio()
    stream = p.open(channels=CHANNELS,
                    format=FORMAT,
                    rate=RATE,
                    input=True,
                    frames_per_buffer=CHUNK)
    while 1:
        data = stream.read(CHUNK)
        _frames.append(data)

    stream.stop_stream()
    stream.close()
    p.terminate()

	# 保存wav文件
	wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
    wf.setnchannels(CHANNELS)
    wf.setsampwidth(p.get_sample_size(FORMAT))
    wf.setframerate(RATE)
    wf.writeframes(b''.join(_frames))
    wf.close()
    # print("Saved")

(4)百度语音识别API

有了使用语音合成API的基础,用语音识别API就很easy
前面是一样的,所以我把他写在方法外,可以公用:

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)

后面就是语音识别,传入的参数是音频文件的二进制码,文件格式(我们用的是wav),采样率(只能用16000,所以前面的录音必须设置RATE为16000),语言类别(默认1537,普通话)。

# 读取文件
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

# 识别本地文件
client.asr(get_file_content(WAVE_OUTPUT_FILENAME), 'wav', 16000, {
    'dev_pid': 1537,
})

WAVE_OUTPUT_FILENAME就是我们刚才录音保存的文件名。

(5)浏览器搜索 + 打开常用软件功能

1. 浏览器搜索

打开浏览器,我们需要用到:webbrowser库,
没有的话自己pip安装一下
基本用法:

url = "www.baidu.com"
webbrowser.get().open(url)

我们前面已经能通过语音得到我们说的话text,当我们说的话text中有“搜索”两个字时,打开百度并搜索我们要搜的内容,实现代码:

if '搜索' in text:
	_, keywords = text.split('搜索')
	url = 'https://www.baidu.com/s?wd=' + keywords
	webbrowser.get().open(url)
else:
	...

2. 打开常用软件

windows打开软件有很多方法,参考:Python中四种运行其他程序的方式
我用的是win32api库,基本用法:
ShellExecute(hwnd, op, file, args, dir, show)

  • hwnd: 父窗口的句柄,如果没有父窗口,则为0
  • op : 要运行的操作,为open,print或者为空
  • file: 要运行的程序,或者打开的脚本
  • args: 要向程序传递的参数,如果打开的是文件则为空
  • dir : 程序初始化的目录
  • show: 是否显示窗口

盘他:

	if '搜索' in data:
		...
    elif '打开' in data:
        _, name = data.split('打开')
        # print(name)
        if '网易云' in name:
            win32api.ShellExecute(0, 'open', 'D:\App\CloudMusic\cloudmusic.exe', '', '', 1)    # 打开网易云,
        elif 'QQ' in name or 'qq' in name:
            win32api.ShellExecute(0, 'open', r'D:\App\QQ\Bin\QQScLauncher.exe', '', '', 1)    # 打开QQ
        elif '微信' in name:
            win32api.ShellExecute(0, 'open', r'D:\App\WeChat\WeChat.exe', '', '', 1)   # 打开微信

三、综合实现:

为了实现目标功能,还涉及到多线程,将键盘监听单独占用一个线程,设置run,初始值为False,当按下空格时,run变为True,再次按下时,run变为False,以此类推,当run为True时,开始录音,run为False时,录音结束。
运行效果图:(语音输入,语音输出)
运行效果图

全部完整代码:
(代码中api_key之类的要用你自己的噢)

import webbrowser
import requests
import json
import playsound
import os
import win32api
import pyaudio
import wave
import threading
from aip import AipSpeech
from pynput.keyboard import Listener


prologue = '主人您好,我是Niubility,爱你哦~'  # 开场白

"""图灵机器人API"""
urls = 'http://openapi.tuling123.com/openapi/api/v2'
key = '**********'
api_key = '********************'

count = 1   # 计数
run = False

"""pyaudio参数"""
CHUNK = 1024    # 数据包或者数据片段
FORMAT = pyaudio.paInt16    # pyaudio.paInt16表示我们使用量化位数 16位来进行录音
CHANNELS = 1    # 声道,1为单声道,2为双声道
RATE = 16000    # 采样率,每秒钟16000次
# RECORD_SECONDS = 5  # 录音时间
WAVE_OUTPUT_FILENAME = "output.wav"     # 保存录音文件名

""" 你的 APPID AK SK """
APP_ID = '**********'
API_KEY = '********************'
SECRET_KEY = '********************'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)		# 百度语音接口

def recoder():
    _frames = []
    global run
    p = pyaudio.PyAudio()
    stream = p.open(channels=CHANNELS,
                    format=FORMAT,
                    rate=RATE,
                    input=True,
                    frames_per_buffer=CHUNK)
    while run:
        data = stream.read(CHUNK)
        _frames.append(data)

    stream.stop_stream()
    stream.close()
    p.terminate()

    wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
    wf.setnchannels(CHANNELS)
    wf.setsampwidth(p.get_sample_size(FORMAT))
    wf.setframerate(RATE)
    wf.writeframes(b''.join(_frames))
    wf.close()
    # print("Saved")

# 按键按下空格时控制录音功能开关
def press(key):
    global run
    try:
        # print(str(key))
        if str(key) == 'Key.space':
            run = not run

            # print(run)
    except AttributeError as e1:
        print(e1)
        pass

# 监听键盘
def check_input():
    with Listener(on_press=press) as listener:
        listener.join()


# 读取录音文件字节码
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

# 识别录音,语音转文字
def lic():
    res = client.asr(get_file_content(WAVE_OUTPUT_FILENAME), 'wav', 16000, {
        'dev_pid': 1537,
    })
    text = res['result'][0]
    # print(text)
    return text

# 语音合成
def speak_(text):
    result = client.synthesis(text, 'zh', 1, {
        'vol': 5,
        'per': 0,
        'spd': 5,
        'pit': 5
    })

    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open('audio.mp3', 'wb') as f:
            f.write(result)
        playsound.playsound('audio.mp3')
        os.remove('audio.mp3')

# 第一层判别
def respond(data):

    if '歌' in data:
        douban_rul = 'https://douban.fm/'
        webbrowser.get().open(douban_rul)
    elif '搜索' in data:
        _, keywords = data.split('搜索')
        baidu_url = 'https://www.baidu.com/s?wd=' + keywords
        webbrowser.get().open(baidu_url)
    elif '打开' in data:
        _, name = data.split('打开')
        # print(name)
        if '网易云' in name:
            win32api.ShellExecute(0, 'open', 'D:\App\CloudMusic\cloudmusic.exe', '', '', 1)    # 打开网易云
        elif 'QQ' in name or 'qq' in name:
            win32api.ShellExecute(0, 'open', r'D:\App\QQ\Bin\QQScLauncher.exe', '', '', 1)    # 打开QQ
        elif '微信' in name:
            win32api.ShellExecute(0, 'open', r'D:\App\WeChat\WeChat.exe', '', '', 1)   # 打开微信

    else:
        data_dict = {
            "reqType":0,
            "perception": {
                "inputText": {
                    "text": data
                },
            },
            "userInfo": {
                "apiKey": api_key,
                "userId": "!!!你自己的userId!!! "
            }
        }
        result = requests.post(urls, json=data_dict)
        content = (result.content).decode('utf-8')
        # print(content)
        ans = json.loads(content)
        text = ans['results'][0]['values']['text']
        print('Niubility:',text)
        speak_(text)


if __name__ == '__main__':

    print('Niubility:', prologue)
    speak_(prologue)
    print('{}//你:按  空格  键开始说话...'.format(count), end=' ')

    t1 = threading.Thread(target=check_input,args=())      # 监听键盘
    t1.start()

    while 1:

        if run is True:
            print('\r{}//你:正在听呢,说完了请再按  空格  键...'.format(count), end=' ')
            recoder()
            text2 = lic()
            print('\r{}//你:'.format(count),text2)
            respond(text2)
            count += 1
            print('{}//你:按  空格  键开始说话...'.format(count), end=' ')
python语音聊天_语音聊天实现 前言这几天看了点PyQt相关的知识,感觉可以结合之前得一些内容做出点什么好玩的东西。之前做过文本转语音的聊天机器人,昨天又恰好做了关于音频处理的。借此机会,整合一下,来做个有界面的语音文本聊天机器人好了。先来看看最终的效果图。文本语音聊天机器人效果图对这些基础内容不是很了解的可以参考我之前的文章。环境环境搭建是个坑,之前一直在用的pyttsx语音引擎竟然不支持Python36,只能在Python2... 阅读详情

相关推荐

百行代码,轻松实现机器人语音对话

前言 siri是由苹果开发的人工智能系统,很多人在无聊的时候就喜欢调戏siri,不过反倒被siri给调戏了。 其实咱们用Python也可以实现一个类似siri的对话机器人。 基本环境配置 版本:Python3 系统:Windows 原理 许多现代语音识别系统会在HMM识别之前使用神经网络,通过特征变换和降维技术来简化语音信号,也可以使用语音活动检测器将音频信号减少到可能包含语音的部分。 幸运的是,对于python来讲,一些语音识别的服务可通过API在线使用,且

az776776的博客 2780

python调用(百度云、腾讯云)API接口表格识别并保存为excel

图像识别具有较高的商业价值,本节主要通过python调用(百度云、腾讯云)API接口表格识别并保存为excel分析表格识别的能力

用余生去守护的博客 4937

使用Python构建自然语言对话的聊天机器人

在今天的科技世界中,聊天机器人已经成为了日常生活和工作中不可或缺的一部分。它们可以用于客户服务、虚拟助手、娱乐,甚至医疗诊断等各种应用。本文将介绍如何使用Python构建一个自然语言对话的聊天机器人,从基础概念到实际编程实现,详细解释每一步的过程。

斌擎科技 473

人工智能动物识别系统python_语音对话机器人,百行Python代码就能轻松实现

前言siri是由苹果开发的人工智能系统,很多人在无聊的时候就喜欢调戏siri,不过反倒被siri给调戏了。其实咱们用Python也可以实现一个类似siri的对话机器人。基本环境配置版本:Python3系统:Windows原理许多现代语音识别系统会在HMM识别之前使用神经网络,通过特征变换和降维技术来简化语音信号,也可以使用语音活动检测器将音频信号减少到可能包含语音的部分。幸运的是,对于p...

weixin_39838028的博客 471

使用Python实现语音助手

在主循环中,我们不断监听用户的语音输入,并根据输入执行相应的任务。在示例中,我们简单地打印用户的输入并生成一个固定的回答。在本文中,我们将使用Python编程语言来创建一个简单的语音助手。语音助手可以通过语音输入和输出与用户进行交互,并执行一些基本的任务,如回答问题、提供信息等。要实现语音助手,我们需要使用一些外部库来处理语音输入和输出,以及执行语音识别和合成等功能。语音助手将尝试识别你的语音输入,并生成相应的回答进行语音输出。这只是一个简单的示例,你可以根据自己的需求和创意来扩展和改进这个语音助手。

DevScript的博客 1083

Win系统蓝牙设备频繁卡顿/断连 - 解决方案

无线网卡有2个模块,一个是WiFi,一个是蓝牙,因此蓝牙问题可能和无线网卡有关。在某些情况下,例如高温或WiFi速率过高,会导致蓝牙频繁卡顿/断连。解决方法分为2种,1是更新驱动,2是更换无线网卡。

NSJim的博客 2万+

Python开发智能语音机器人——小O同学

摘要: 当下,人工智能正在走进家居、教育、医疗、交通等几乎所有行业,尤其在计算机领域内,得到了愈加广泛的重视。并在机器人,经济政治决策,控制系统,仿真系统中得到应用。本文主要运用所学的python知识,基于Python的一些库制做了一个带有人机互动、音乐播放、天气播报及新闻播报功能的GUI图形界面。在人机交互、音乐播放、天气播报功能中,将通过麦克风获取的语音信息,进行解析并提取其中的关键信息,来分别获取图灵机器人的返回消息、到指定网页去爬取把需要的内容,最后通过调用Python的库播放出来,新闻播报功能中

aqqwvfbukn的博客 1万+

Rust 与 Golang 深度对决:从语法到应用场景的全方位解析

Rust 定义函数以fn关键字开头,参数需明确指定类型,返回值类型紧跟在箭头->之后。// 定义函数add,接收两个i32类型参数a和b,返回i32类型结果,功能为两数相加a + bRust 和 Golang 各有千秋,在不同领域展现独特优势。Rust 凭借强大的内存安全与高性能,在系统编程、网络编程以及对内存安全和性能要求高的场景中表现突出;Golang 则以简洁语法和出色并发性能,在云计算、分布式系统、Web 开发等领域占据一席之地。

muyouking 1769

python实现语音机器人

人生苦短,我用python

HI_REY的博客 1万+

SAP销售订单POD实操:从VL01N创建到VLPOD差异处理,保姆级避坑指南

本文详细解析SAP销售订单POD全流程,从VL01N创建到VLPOD差异处理,提供保姆级避坑指南。涵盖核心业务逻辑、前置配置、销售订单创建、交货单处理及差异解决方案,帮助用户高效管理供应链执行环节,确保财务与物流的准确对接。

weixin_27219587的博客 623

ABAP代码使用OAuth2.0 Client Credential调用外部API

ABAP-OAuth2.0-调用外部API

m0_74015269的博客 1951

[Python & Nonebot]QQ自动聊天机器人

做了有好长时间了,一直没来写点博客啥的。 现在公开部分源代码吧,顺便在放一些和他对话、对骂、有趣功能的示例。 关键词检测部分代码: @on_natural_language(only_to_me = False,keywords={'XXX','???','哈哈哈哈'}) async def _(session: NLPSession): # 去掉消息首尾的空白符 stripped_msg = session.msg_text.strip() #保证第一句话是文本 if se

Baby_Qi的博客 3725

网格自适应_Comsol案例解析17:自适应网格的使用

本期导读自适应网格细化有许多优势,比如可以不用对网格进行全局加密,增加计算精度,又会降低求解自由度。本期仍然以气泡上升案例为例,在两相流模块中使用自适应网格。【打开案例模型】【修改网格】适当让气泡边界加密,注意,曲率因子越小,曲线上的网格越密【添加自适应网格】使用默认的参数即可,这里的误差指示器用的是水平集phi。可以根据具体求解模型选择适当的自变量作为误差指示器。【口诀】默认的一般是最...

weixin_28726871的博客 5681

自动语音对话系统 Python实现

基于Linux 上实现智能语音问答系统

zc的csdn 4438

SAP Joule Studio 能不能用来开发 skill:可以,但它开发的是 Joule 语境下的企业级 skill,而不是替代所有 SAP 开发技术的万能锤

SAP Joule Studio 专为开发Joule技能(Joule skills)而设计,这些技能是执行确定性单步业务动作的原子能力。它通过自然语言接口连接SAP和非SAP系统,适合处理边界清晰、可审计的任务(如创建工单、查询发票)。Joule技能作为会话式业务编排层,与ABAP、CAP等核心技术互补而非替代。开发支持低代码和专业代码两种方式,并具备企业级治理能力,但需要相应的BTP订阅和技术基础。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 199

Parasoft C++Test软件单元测试_操作指南

本文主要为使用C++TEST进行单元测试的流程性操作讲解,后续文章将以专题形式进行详细讲解,以及用一些被测函数作为示例进行实例讲解。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1571

python-实现智能语音交互

利用mac 笔记本自带的mic和喇叭,实现智能语音问答功能:笔记本mic收音-->百度asr识别-->讯飞星火大模型理解并回复文本-->百度tts-->笔记本播放音频。

m0_62649400的博客 2295

【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅰ——理论,实验拓扑和安装基于RemoteAPP的RDS

博客介绍了Windows Server中远程桌面服务的理论,实验拓扑以及基于RemoteAPP的RDS安装。博文介绍了如何在Windows Server上部署发布服务器。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6128

chatgpt赋能python:Python实现语音说话代码

我们可以使用pyttsx3来定制我们要说的话的语音输出。它允许我们设置音调、语速和语音类型等参数。

laingziwei的博客 616

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【小沐学Python】Python实现语音识别(SpeechRecognition)

SpeechRecognition用于执行语音识别的库,支持多个引擎和 API,在线和离线。以上几个中只有 recognition_sphinx()可与CMU Sphinx 引擎脱机工作, 其他六个都需要连接互联网。另外,SpeechRecognition 附带 Google Web Speech API 的默认 API 密钥,可直接使用它。其他的 API 都需要使用 API 密钥或用户名/密码组合进行身份验证。╮( ̄▽ ̄)╭如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;

爱看书的小沐 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Python实现可以语音聊天的桌面宠物程序

普通的桌面宠物只能动一动,可以看看时间,内存信息而已。于是我给程序添加了语言功能

PYmili的博客 3299

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

用Python程序实现语音识别就是这么简单!​

Python程序提供了其他技术无法比拟的交互性和可访问性,重要的是,在 Python 程序中实现语音识别非常简单。我们一起来了解python程序的:语音识别的工作原理、PyPI 支持哪些软件包以及如何安装和使用 SpeechRecognition 软件包(一个功能全面且易于使用的 Python 语音识别库),让你体验到用Python程序实现语音识别就是这么简单!(文末送读者福利)python语音识别源于 20 世纪 50 年代早期在贝尔实验室所做的研究。

xiaoganbuaiuk的博客 3775

Python实时语音识别控制

Python实时语音识别控制概述本文中的语音识别功能采用 百度语音识别库 ,首先利用 PyAudio 库录制语音指令,保存为受支持的 wav 音频文件,然后利用 百度语音识别库 提供的方法实现语音识别,最后检测识别结果,利用 PyUserInput 库提供的方法模拟控制web页面滚动。百度语音识别为开发者提供业界优质且免费的语音服务,通过场景识别优化,为车载导航,智能家居和社交聊天等行业提供语音解...

q6q6q的专栏 1075

python构建语音交互的智能机器人

python构建语音交互的智能机器人

w519021660 1189

13个最佳开源语音识别引擎

它主要支持日语ASR,但作为一个独立于语言的程序,该模型可以理解和处理多种语言,包括英语,斯洛文尼亚语,法语,泰语等。ESPnet是一个基于Apache 2.0许可证发布的开源语音转文本软件,它提供端到端语音处理功能,涵盖了ASR、翻译、语音合成、增强和日志化等任务。语音识别基本过程一般包括:分析音频、音频分解、格式转换、文本匹配,但实际的语音识别系统可能会更复杂,并且可能包括其他步骤和功能组件,例如:噪声抑制、声学模型、语言模型和置信度评估等。它训练执行转录,翻译,自动语音识别和情感分析任务的语言模型。

9060
上一篇: 计算机操作系统之页面置换算法课程设计(python实现,可运行有界面程序exe)
下一篇: socket网络程序设计实验一,通过域名查询IP/gethostbyname(基于python3.7、PyQt5)
LiePy
博客等级 码龄7年 1927粉丝 33原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值