AttributeError: 'str' object has no attribute 'raw_data' (Python Voice Assistant)
AttributeError: 'str' object has no attribute 'raw_data' (Python Voice Assistant)
大家好,我正在尝试为 ubuntu.In 我的程序做桌面语音助手,它正在使用
os.system("mpg123 audio.mp3")
我如何使用 pydub 模块来代替这一行?
但我不想使用系统播放音频文件与 me.I 认为它比较慢。我想要更快的程序,今天我正在尝试 pydub 模块。
有我的程序;
from gtts import gTTS
import speech_recognition as sr
import os
import webbrowser
import datetime
import time
import sys
import random
from pydub import AudioSegment
from pydub.playback import play
#sound = AudioSegment.from_mp3('hello.mp3')
#play(sound)
def talkToMe(audio):
print(audio)
tts = gTTS(text=audio, lang= "en")
tts.save("audio.mp3")
play("audio.mp3") #os.system("mpg123 audio.mp3")
def OurCommands():
r = sr.Recognizer()
with sr.Microphone() as source:
os("clear")
print("Ready for next command")
r.pause_threshold = 1
r.adjust_for_ambient_noise(source, duration = 1)
audio = r.listen(source)
try:
command = r.recognize_google(audio)
print("You said: " + command + "\n")
except sr.UnknownValueError:
print("Your last command not understand")
command = str(input("Command: "))
return command
#if statements..
def asistan(command):
if "open web browser" in command:
talkToMe("İt\'s opening")
webbrowser.open("www.google.com.tr")
elif "play music" in command:
mixer.init()
mixer.music.load('/path/to/music/')
mixer.music.play()
elif "stop music" in command:
mixer.music.stop()
elif "thank you" in command:
talkToMe("You're welcome")
elif "shutdown my computer" in command:
talkToMe("I will close after five second")
time.sleep(5)
os.system("shutdown now -h")
elif "open youtube" in command:
webbrowser.open("youtube.com")
hour = int(datetime.datetime.now().hour)
if hour >= 1 and hour <12:
talkToMe("Goodmorning")
elif hour >= 12 and hour < 16:
talkToMe("Good afternoon")
else:
talkToMe("Good night")
while True:
asistan(OurCommands())
但是当我想使用 pydub 模块时,我得到这样的错误;
AttributeError: 'str' object has no attribute 'raw_data'
我在我的电脑上试过这个模块为我工作并播放了 mp3 文件。
那么现在我如何在我的程序中使用 pydub 模块让计算机与我交谈。
我认为我需要 audiosegment 但我如何在我的程序中使用我是否必须使用另一个模块?
或者我也可以在我的程序中使用 pydub 模块?提前致谢:)
来自文档:
from pydub import AudioSegment
from pydub.playback import play
sound = AudioSegment.from_file("mysound.wav", format="wav")
play(sound)
Play 不需要文件名,它需要这样的输入。你要
sound = AudioSegment.from_file("audio.mp3", format="mp3")
play(sound)
大家好,我正在尝试为 ubuntu.In 我的程序做桌面语音助手,它正在使用
os.system("mpg123 audio.mp3")
我如何使用 pydub 模块来代替这一行?
但我不想使用系统播放音频文件与 me.I 认为它比较慢。我想要更快的程序,今天我正在尝试 pydub 模块。
有我的程序;
from gtts import gTTS
import speech_recognition as sr
import os
import webbrowser
import datetime
import time
import sys
import random
from pydub import AudioSegment
from pydub.playback import play
#sound = AudioSegment.from_mp3('hello.mp3')
#play(sound)
def talkToMe(audio):
print(audio)
tts = gTTS(text=audio, lang= "en")
tts.save("audio.mp3")
play("audio.mp3") #os.system("mpg123 audio.mp3")
def OurCommands():
r = sr.Recognizer()
with sr.Microphone() as source:
os("clear")
print("Ready for next command")
r.pause_threshold = 1
r.adjust_for_ambient_noise(source, duration = 1)
audio = r.listen(source)
try:
command = r.recognize_google(audio)
print("You said: " + command + "\n")
except sr.UnknownValueError:
print("Your last command not understand")
command = str(input("Command: "))
return command
#if statements..
def asistan(command):
if "open web browser" in command:
talkToMe("İt\'s opening")
webbrowser.open("www.google.com.tr")
elif "play music" in command:
mixer.init()
mixer.music.load('/path/to/music/')
mixer.music.play()
elif "stop music" in command:
mixer.music.stop()
elif "thank you" in command:
talkToMe("You're welcome")
elif "shutdown my computer" in command:
talkToMe("I will close after five second")
time.sleep(5)
os.system("shutdown now -h")
elif "open youtube" in command:
webbrowser.open("youtube.com")
hour = int(datetime.datetime.now().hour)
if hour >= 1 and hour <12:
talkToMe("Goodmorning")
elif hour >= 12 and hour < 16:
talkToMe("Good afternoon")
else:
talkToMe("Good night")
while True:
asistan(OurCommands())
但是当我想使用 pydub 模块时,我得到这样的错误;
AttributeError: 'str' object has no attribute 'raw_data'
我在我的电脑上试过这个模块为我工作并播放了 mp3 文件。 那么现在我如何在我的程序中使用 pydub 模块让计算机与我交谈。 我认为我需要 audiosegment 但我如何在我的程序中使用我是否必须使用另一个模块? 或者我也可以在我的程序中使用 pydub 模块?提前致谢:)
来自文档:
from pydub import AudioSegment
from pydub.playback import play
sound = AudioSegment.from_file("mysound.wav", format="wav")
play(sound)
Play 不需要文件名,它需要这样的输入。你要
sound = AudioSegment.from_file("audio.mp3", format="mp3")
play(sound)