Skip to content
Advertisement

How to start an mp4 file in python speech recognizer?

I am creating a python voice assistant referring from a youtube tutorial. Unfortunately, the video creator has a windows os. So he uses startfile from OS module. But this is not working in ubuntu. Here is the code that the video maker used:

elif 'play music' in query:     
        music_dir = '/home/thilak/Music'
        songs = os.listdir(music_dir)
        print(songs)
        os.startfile(os.path.join(music_dir, songs[0]))

But this didn’t work out for me, so I used this one:

elif 'play music' in query:     
        music_dir = '/home/thilak/Music'
        songs = os.listdir(music_dir)
        print(songs)
        os.system(os.path.join(music_dir, songs[0])) #changing startfile to system

Still, this code too shows an error message like this:

Say that again please...
Listening....
recognizing...
User said: play music

['Despacito and senorita (copy).mp4', 'Curtis Waters - Stunnin’ (Lyrics) “ I’m a pretty boy,I’m stunning “-YVrha4CjldA.mkv', 'DJ Snake ft. Justin Bieber - Let Me Love You [Lyric Video]-SMs0GnYze34 (copy).mkv', 'Curtis Waters - Stunnin’ (Lyrics) “ I’m a pretty boy,I’m stunning “-YVrha4CjldA (copy).mkv', 'Despacito and senorita.mp4', 'DJ Snake ft. Justin Bieber - Let Me Love You [Lyric Video]-SMs0GnYze34.mkv']
sh: 1: Syntax error: "(" unexpected

Please help me resolve this issue. Thank you!

Advertisement

Answer

As given, the code was meant for windows, how about using ffmpeg‘s ffplay

elif 'play music' in query:     
        music_dir = '/home/thilak/Music'
        songs = os.listdir(music_dir)
        print(songs)
        os.popen('ffplay -nodisp -autoexit "'+os.path.join(music_dir, songs[0])+'" >/dev/null 2>&1')

before using the above codes do remember to install ffmpeg using apt

sudo apt-get update
sudo apt-get install ffmpeg
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement