+
95
-

回答

苹果、微软的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

网友回复

我知道答案,我要回答