web-dev-qa-db-fra.com

comment jouer mp3

mon problème commence ici:

Erreurs de module pyttsx et gTTS

gTTS fonctionne bien, prend du texte à partir d'un fichier texte, mais crée d'abord un fichier mp3, puis si je veux écouter, je dois appeler ce mp3, donc c'est bien, mais ce serait mieux si je pouvais éviter tous les fichiers audio et simplement lire fichier texte. peut-être que je peux utiliser Google Voice pour lire à partir d'un fichier texte ..? de toute façon la question principale est maintenant autre

si je peux utiliser uniquement gTS, quel est le meilleur moyen de lire les fichiers mp3 sur Windows 10-64 bits, Python 3.5? 

ok avec os: 

import os
os.startfile("D:\my path/rec1.mp3") 

c'est bien, mais je ne veux pas utiliser le lecteur par défaut, j'ai besoin de quelque chose comme simpleaudio pour mp3 ... 

avec pygame, j’ai un problème d’installation et je ne sais pas trop comment l’utiliser de cette façon:

from pygame import mixer 

mixer.init()
mixer.music.load('D:/my path/rec1.mp3')
mixer.music.play()

vLC juste comment l'installer? avec easy_install vlc j'ai eu l'erreur: could not find suitable distribution for requirement.parse ('vlc') et avec pip install vlc erreur: could not find a version that satisfies the requirement vlc (from versions: ) no matching distribution found for vlc 

import vlc

p = vlc.MediaPlayer("file:/my path/rec1.mp3")
p.play()
p.stop()

avec pyglet: 

import pyglet

music=pyglet.media.load('D:/my path/rec1.mp3')
music.play()
pyglet.app.run()

J'ai eu cette erreur:

'AVbin is required to decode compressed media')
pyglet.media.riff.WAVEFormatException: AVbin is required to decode compressed media

le sous-processus utilise également le lecteur par défaut:

import subprocess

sound_program = "path to player"
sound_file = "D:/my path/rec1.mp3"
subprocess.call([sound_program, sound_file])

avec mp3play, je ne sais pas comment l'utiliser: 

import mp3play

filename = (r'D:\my path/rec1.mp3')
clip = mp3play.load(filename)
clip.play()

J'ai essayé de cette façon: 

  filename = ('D:\my path/rec1.mp3')

par ici: 

  filename = r'D:\my path/rec1.mp3'

Dans tous les cas, j'ai eu une erreur: 

Traceback (most recent call last):
  File "D:/dt/PyCharm_project/0_ASK.py", line 18, in <module>
    import mp3play
  File "C:\Users\User\AppData\Roaming\Python\Python35\site-packages\mp3play\__init__.py", line 4, in <module>
    from .windows import AudioClip as _PlatformSpecificAudioClip
  File "C:\Users\User\AppData\Roaming\Python\Python35\site-packages\mp3play\windows.py", line 27
    print 'Error %s for "%s": %s' % (str(err), txt, buf)
                                ^
SyntaxError: invalid syntax

ok donc avec pydub: 

from pydub import AudioSegment 
from gtts import gTTS
import simpleaudio as sa

blabla = ('my voice')
tts = gTTS(text=blabla, lang='en')
tts.save("D:/my path/rec.mp3")

rec = AudioSegment.from_mp3("D:\my path\rec.mp3")
rec.export("rec.wav", format="wav")

#rec = AudioSegment.ffmpeg ("D:\my path\rec.mp3")
#rec.export("rec.wav", format="wav")

#rec = AudioSegment.converter ("D:\my path\rec.mp3")
#rec.export("rec.wav", format="wav")

wave_obj = sa.WaveObject.from_wave_file('D:/my path/rec.wav'')
play_obj = wave_obj.play()
play_obj.wait_done()

Erreurs dans la séquence en premier avec AudioSegment.from_mp3:

RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
Traceback (most recent call last):
  File " D:/dt/PyCharm_project/0_ASK.py", line 9, in <module>
    rec = AudioSegment.from_mp3("D:\my path\rec.mp3")
  File "C:\Users\User\AppData\Roaming\Python\Python35\site-packages\pydub\audio_segment.py", line 438, in from_mp3
    return cls.from_file(file, 'mp3')
  File "C:\Users\User\AppData\Roaming\Python\Python35\site-packages\pydub\audio_segment.py", line 366, in from_file
    file = _fd_or_path_or_tempfile(file, 'rb', tempfile=False)
  File "C:\Users\User\AppData\Roaming\Python\Python35\site-packages\pydub\utils.py", line 59, in _fd_or_path_or_tempfile
    fd = open(fd, mode=mode)
OSError: [Errno 22] Invalid argument: 'D:\my path\rec.mp3'

avec AudioSegment.ffmpeg:

  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
Traceback (most recent call last):
  File "D:/dt/PyCharm_project/0_ASK.py ", line 12, in <module>
    rec = AudioSegment.ffmpeg ("D:\my path\rec.mp3")
TypeError: 'str' object is not callable

avec AudioSegment.converter:

RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
Traceback (most recent call last):
  File "D:/dt/PyCharm_project/0_ASK.py", line 15, in <module>
    rec = AudioSegment.converter ("D:\my path\rec.mp3")
TypeError: 'str' object is not callable

pas sûr peut-être webbrowser, mais comment l'installer? 

import webbrowser
webbrowser.open("D:/my path/rec1.mp3")
7
user6067640

Même problème ici. Cela fonctionne avec playsound 1.2.1 pour moi.

Installer avec:

$ pip install playsound

test avec:

>>>from playsound import playsound
>>>playsound('/path/to/a/sound/file/you/want/to/play.mp3')
4
Leon Bartz

Vous pouvez utiliser "sous-processus".

from subprocess import call
from gtts import gTTS
import os
blabla = input('Type IN: ')
tts = gTTS(text=blabla, lang='en')
tts.save("test.mp3")
call(["vlc", "test.mp3"])

Ce programme demande à l’utilisateur de saisir quoi que ce soit et il dira que, par le biais de vlc.
J'utilise ceci sous Linux, mais je ne le sais pas maintenant si cela fonctionne sous Windows.

3
CooldBear

avec pygame, j’ai un problème d’installation et je ne sais pas trop comment l’utiliser de cette façon:

Pouvez-vous fournir plus de détails sur l'erreur d'installation de pygame ?

J'ai pu utiliserPYGAMEavec ce code, où "hello.mp3" est un fichier du même répertoire 

from gtts import gTTS
tts = gTTS(text='Hello', lang='en')

tts.save("hello.mp3")

from Tkinter import *
root = Tk()

from pygame import mixer
mixer.init()
mixer.music.load('hello.mp3')
mixer.music.play()

root.mainloop()

vLC juste comment l'installer?

J'ai aussi utiliséVLC. Je l'ai installé avec ces commandes:

Sudo pip install python-vlc

Et j'ai eu cette erreur:

NameError: no function 'libvlc_new

Alors, j'ai essayé la commande:

Sudo apt-get install vlc

Et cela a fonctionné avec ce code:

from gtts import gTTS
tts = gTTS(text='Hello', lang='en')
tts.save("hello.mp3")

from Tkinter import *
root = Tk()

import vlc
p = vlc.MediaPlayer("hello.mp3")
p.play()

root.mainloop()

J'espère que cela vous aidera.

2
Isabela da Silva

Cela fera le travail et sans avoir besoin de fichiers:

def say(text, lang='en'):
""" Speak the provided text.
"""    
import pygame
from gtts import gTTS
import io
tts = gTTS(text=text, lang=lang, slow=False)
pygame.mixer.init()
pygame.init()  # this is needed for pygame.event.* and needs to be called after mixer.init() otherwise no sound is played 
with io.BytesIO() as f: # use a memory stream
    tts.write_to_fp(f)
    f.seek(0)
    pygame.mixer.music.load(f)
    pygame.mixer.music.set_endevent(pygame.USEREVENT)
    pygame.event.set_allowed(pygame.USEREVENT)
    pygame.mixer.music.play()
    pygame.event.wait() # play() is asynchronous. This wait forces the speaking to be finished before closing f and returning
2
omasoud

Vous pouvez utiliser le module playsound 

from playsound import playsound
playsound(file.mp3)

Boom ça y est.il joue la bonne façon de l'audio fonctionne comme un charme

1

Je pense que vous recherchez:

pyttsx3

C'est un TTS multiplate-forme hors ligne compatible avec python3 et python2.

Installer:

pip install pyttsx3

Si vous voulez un TTS hors ligne pour python, contrairement à GTTS, pyttsx3 est votre meilleur choix à mon avis.

1
Natesh bhat

Si une erreur AVbin se produit ...

Commencez par télécharger AVbin.exe et installez-le Puis allez sur le disque local C -> Windows -> System32 -> recherchez Avbin.dll et copiez ce fichier Puis collez ce fichier dans votre répertoire racine

L'erreur disparaîtra

0
jerald king

webbrowser devrait faire partie de votre installation python standard . Vérifiez s'il existe un webbrowser.py sous C:\Your_Python_Folder\Lib

Le code ci-dessous fonctionne très bien pour moi car webbrowser.py est présent dans le dossier mentionné ci-dessus. 

import webbrowser
webbrowser.open("rec.mp3")
0
Anil_M
    import os
    os.system("music.mp3")
0
Devashish Mishra

Je ne connais pas la solution à toutes les questions, mais le problème que vous rencontrez avec pydub est que vous n'avez pas installé ffmpeg ou avconv. Il y a des instructions sur le pydub github :

Les fenêtres:

  1. Téléchargez et extrayez libav à partir des binaires Windows fournis ici.
  2. Ajoutez le dossier libav/bin à votre envvar PATH
  3. pip installer pydub
0
Jiaaro

Si vous êtes sur Windows alors cela devrait faire le travail,

import winsound
winsound.PlaySound('your_file.mp3',winsound.SND_FILENAME)

Rappelez-vous que ce paquet n'est présent que dans Python pour Windows.

0
Nikhil

installez pyglet en utilisant python -m pip install pyglet

Télécharger installé ici Lien vers la configuration AVbin (c'est un must)

32/64 bit 

import pyglet

song = pyglet.media.load('file.mp3')
song.play()
pyglet.app.run()

C'est tout.

0
None