python语音机器人(青云客免费api)

ops/2025/1/1 1:23:18/

强调:不用登录注册,直接使用就好



青云客智能聊天机器人API

python代码,直接可以运行:
1、安装库:

pip install requests pyttsx3 SpeechRecognition sounddevice numpy scipy

2、完整代码:

import requests
import pyttsx3
import speech_recognition as sr
import sounddevice as sd
import numpy as np
import scipy.io.wavfile as wavfile
import tempfileclass ChatBot:def __init__(self, api_url, key="free", appid="0"):self.api_url = api_urlself.key = keyself.appid = appidself.tts_engine = pyttsx3.init()self.tts_engine.setProperty('rate', 150)  # 设置语速self.tts_engine.setProperty('volume', 1.0)  # 设置音量 (0.0到1.0)def send_message(self, message):params = {"key": self.key,"appid": self.appid,"msg": message}try:response = requests.get(self.api_url, params=params)response.raise_for_status()  # 检查请求是否成功data = response.json()if data.get("result") == 0:return data.get("content")else:return "对不起,我无法处理您的请求。"except requests.RequestException as e:return f"请求失败:{e}"def speak(self, text):self.tts_engine.say(text)self.tts_engine.runAndWait()def recognize_speech():# 设置录音参数sample_rate = 16000  # 采样率duration = 5  # 录音时长,秒print("请开始说话...")try:# 录制音频audio_data = sd.rec(int(sample_rate * duration), samplerate=sample_rate, channels=1, dtype='int16')sd.wait()  # 等待录音完成# 保存临时音频文件with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as temp_audio:wavfile.write(temp_audio.name, sample_rate, audio_data)temp_audio_path = temp_audio.name# 使用 speech_recognition 进行语音识别recognizer = sr.Recognizer()with sr.AudioFile(temp_audio_path) as source:audio = recognizer.record(source)text = recognizer.recognize_google(audio, language="zh-CN")print(f"你: {text}")return textexcept sr.UnknownValueError:print("无法识别语音,请再试一次。")return Noneexcept sr.RequestError as e:print(f"语音识别服务出错: {e}")return Noneexcept Exception as e:print(f"录音出错: {e}")return Nonedef main():bot = ChatBot(api_url="http://api.qingyunke.com/api.php")print("欢迎使用语音聊天机器人!说“退出”结束对话。")bot.speak("欢迎使用语音聊天机器人,说退出结束对话。")while True:user_input = recognize_speech()if user_input is None:continueif "退出" in user_input:print("机器人: 再见!")bot.speak("再见!")breakresponse = bot.send_message(user_input)print(f"机器人: {response}")bot.speak(response)if __name__ == "__main__":main()

成功的同学,麻烦关注支持一下哦~~


http://www.ppmy.cn/ops/145947.html

相关文章

1.FAISS与Langchain整合,搭配大模型实现本地知识库问答

1.FAISS是什么? FAISS向量数据库,是来自 Meta AI(原 Facebook Research)的开源项目,也是目前最流行的、效率比较高的相似度检索方案之一。 核心功能: 相似性搜索:FAISS提供了多种算法来快速找到…

RK3506开发板:智能硬件领域的新选择,带来卓越性能与低功耗

在现代智能硬件开发中,选择一款性能稳定、功耗低的开发板是确保产品成功的关键。Rockchip最新推出的RK3506芯片,凭借其卓越的能效比、多功能扩展性和优秀的实时性能,已经成为智能家电、工业控制、手持终端等领域的热门选择。而基于RK3506的Ar…

PostgreSQL的一主一从集群搭建部署 (两同步)

一、实验环境 虚拟机名IP身份简称keep-postgres12-node1192.168.122.87主节点node1keep-postgres12-node2192.168.122.89备节点node2keep-postgres12-node3192.168.122.90备节点node3 二、安装数据库 源码包方式(主) 1、创建用户 [rootkeep-postgre…

4个线程安全的单例模式

1、概述 单例模式是程序生命周期内,该类只有一个实例,并提供一个该实例访问点,适用于全局配置类、资源管理类等场景。 单实例模式特点: 1、构造函数私有 2、拷贝构造和赋值构造函数为私有 3、类有一个静态方法获取实例 2、静…

C#-调用C++接口

一.静态&动态装载DLL C中接口通过编译为DLL对外提供调用,C#需要将DLL加载至本应用才可实现C接口调用. 1.静态装载 C#应用程序在编译为可执行exe时将外部DLL装载至本应用中,例如在CSC编译指令中添加相关参数可实现DLL引用. csc /reference:user32.dll /out:HelloWorld.exe 2…

简单园区网拓扑实验

1.实验拓扑 2.实验要求 1、按照图示的VLAN及IP地址需求,完成相关配置 2、要求SW1为VLAN 2/3的主根及主网关 SW2为vlan 20/30的主根及主网关 SW1和SW2互为备份 3、可以使用super vlan 4、上层通过静态路由协议完成数据通信过程 5、AR1为企业出口路由器 6、要求全网可…

2025最新版Java面试八股文大全

一、Java并发面试题 1、 ThreadLocal 1.1 谈谈你对ThreadLocal的理解? ThreadLocal的作用主要是做数据隔离,填充的数据只属于当前线程,变量的数据对别的线程而言是相对隔离的。它不是针对程序的全局变量,只是针对当前线程的全局…

MySQL中Performance Schema库的详解(上)

使用Performance Schema 将通过一些示例来演示如何使用Performance Schema解决常见的故障案例。 检查SQL语句 要启用语句检测,需要启用statement类型的插桩,如表1所述 ​ 表1:statement类型的插桩及其描述 插装类描述statement/spSQL语句…