如何中断 pyttsx3 和 playsound?
How can I interrupt pyttsx3 and playsound?
我正在尝试做一个助手,但是当用户想要播放一首歌时,它会一直播放直到完成。我希望它在用户按下某个键时停止。 engine.say()
也是一样。
我找不到中断对他们文档的操作的方法。 pyttsx3 有 engine.stop()
,但我无法让它工作。我认为这可能是因为 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()
您可以使用 python
的 keyboard 模块
if keyboard.is_pressed("q"): #If Q key is pressed
engine.stop()
确保在代码顶部添加 import keyboard
。
我使用 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()
我正在尝试做一个助手,但是当用户想要播放一首歌时,它会一直播放直到完成。我希望它在用户按下某个键时停止。 engine.say()
也是一样。
我找不到中断对他们文档的操作的方法。 pyttsx3 有 engine.stop()
,但我无法让它工作。我认为这可能是因为 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()
您可以使用 python
的 keyboard 模块if keyboard.is_pressed("q"): #If Q key is pressed
engine.stop()
确保在代码顶部添加 import keyboard
。
我使用 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()