苹果、微软的ai电脑已经可以语音操控电脑了。开源的也有,下面是一个开源的python+openai api实现windows语音交互沟通,让ai人工智能识别你的命令进行电脑关机和其他操作,示例代码如下:
# -*- coding: utf-8 -*-
import speech_recognition as sr
import pyttsx3
import openai
import os
import sys
openai.api_key = "<your-api-key>"
# 创建 TTS 对象
engine = pyttsx3.init()
# 创建 Recognizer 对象
r = sr.Recognizer()
def getopenairesponse(keyword):
response = openai.Completion.create(
engine="text-davinci-003",
prompt=keyword,
max_tokens=1024,
temperature=0.5
)
return response["choices"][0]["text"]
def listen_for_wake_word():
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
print("等待唤醒词...")
audio = r.listen(source)
try:
text = r.recognize_sphinx(audio, language='zh-CN')
return text.lower()
except:
return ""
def shutdown_computer():
print("电脑即将关机")
engine.say("电脑即将关机")
engine.runAndWait()
if sys.platform == "win32":
os.system('shutdown /s /t 1')
else:
os.system('sudo shutdown -h now')
def restart_computer():
print("电脑即将重启")
engine.say("电脑即将重启")
engine.runAndWait()
if sys.platform == "win32":
os.system('shutdown /r /t 1')
else:
os.system('sudo reboot')
is_active = False
while True:
if not is_active:
wake_word = listen_for_wake_word()
if "开机" in wake_word:
is_active = True
print("系统已开启")
engine.say("系统已开启")
engine.runAndWait()
continue
# 使用麦克风录音
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source) # 噪音抑制
print("我在听,您请说:")
audio = r.listen(source)
# 将语音转成文本
try:
text = r.recognize_sphinx(audio, language='zh-CN')
print("你说的:" + text)
if "关闭系统" in text.lower():
is_active = False
print("系统已关闭")
engine.say("系统已关闭")
engine.runAndWait()
continue
elif "关机" in text.lower():
shutdown_computer()
break
elif "重启" in text.lower():
restart_computer()
break
# 将文字转成语音并播放
response = getopenairesponse(text)
engine.say(response)
engine.runAndWait()
except sr.UnknownValueError:
print("识别失败")
except 网友回复
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?
python如何实现基于http隧道加密的正向代理服务?
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?


