0

我正在尝试制作助手,但是当用户想要播放歌曲时,它会一直播放直到完成。我希望它在用户按键时停止。也一样engine.say()

我找不到中断对他们文档的操作的方法。有engine.stop()pyttsx3 但我无法让它工作。我认为这可能是因为,engine.runAndWait()但如果我不包括它,机器什么也没说。我该如何解决这些问题?如果有办法解决这个问题,我也可以尝试使用另一个模块。

import pyttsx3
from playsound import playsound

if "play" in input:
    songName = input[5:] + ".mp3"
    try:
        playsound(songName)
                
    except:
        engine.say("I couldn't find the song.")
        engine.runAndWait()
4

2 回答 2

1

pygame我通过使用模块解决了这个问题。它具有我们想要用作功能的所有内容。如果其他人遇到类似的问题,您可以尝试一下。

import pygame

def playSong(songName):
    pygame.mixer.music.load(songName)
    pygame.mixer.music.play()

if "play" in input:
                
    try:
        songName = input[5:]+".mp3" #Takes the song name user wanted
        speak("That's a nice song choice.")
        playSong(songName) 
                        
     except:
         speak("I couldn't find the song.")
         

我也试图让这首歌停止并继续,但实际上并没有奏效。但我把它留在这里作为一个想法

 if ("stop") and ("song" or "music") in input:
    pygame.mixer.music.pause()

 if ("resume" or "continue") and ("song" or "music") in input:
    pygame.mixer.music.unpause()
于 2020-08-16T12:24:31.810 回答
-1

您可以使用python的键盘模块

if keyboard.is_pressed("q"): #If Q key is pressed
    engine.stop()

确保import keyboard在代码顶部添加。

于 2020-08-09T10:40:30.297 回答