web-dev-qa-db-ja.com

MP3の再生方法

私の問題はここから始まります:

pyttsxおよびgTTSモジュールのエラー

gTTSはうまく機能し、テキストファイルからテキストを取得しますが、最初にmp3ファイルを作成します。次に、聞きたい場合は、このmp3を呼び出さなければならないので、音声ファイルを避けて、それから読み取るだけでよいのです。テキストファイル。多分どういうわけか私はグーグルの声を使ってテキストファイルから読むことができます。とにかく今の主な質問は別です

gTTSのみを使用できる場合、Windows 10-64ビットでmp3を再生する最良の方法は、Python 3.5

osでOK:

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

それは良いですが、デフォルトのプレーヤーを使いたくありません、mp3にはsimpleaudioのようなものが必要です...

pygameで私はインストールの問題を抱えていますが、わかりません、このようにそれを使うのはどれほど良いですか:

_from pygame import mixer 

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

vlcのインストール方法は? _easy_install vlc_の場合、エラーが発生しました:could not find suitable distribution for requirement.parse ('vlc')および_pip install vlc_エラーの場合: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()
_

ピグレットで:

_import pyglet

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

私はこのエラーを受け取りました:

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

サブプロセスもデフォルトのプレーヤーを使用します:

_import subprocess

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

mp3playでは、使い方がわかりません:

_import mp3play

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

私はこの方法を試しました:

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

こちらです:

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

すべての場合にエラーが発生しました:

_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
_

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()
_

最初に_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'
_

_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
_

_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
_

多分webbrowserは確かではありませんが、それをインストールする方法は?

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

ここでも同じ問題。 playsound 1.2.1 で動作します。

インストール:

$ pip install playsound

テスト:

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

「サブプロセス」を使用できます。

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"])

このプログラムは、ユーザーに何かを入力するように要求し、vlcを介してそれを言うでしょう。
これをLinuxで使用していますが、Windowsで動作するかどうかはわかりません。

3
CooldBear

pygameで私はインストールの問題を抱えていますが、わかりません、このようにそれを使うのはどれほど良いですか:

pygameインストールエラーの詳細を教えてください。

このコードで[〜#〜] pygame [〜#〜]を使用することができました。「hello.mp3」は同じディレクトリ内のファイルです

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のインストール方法は?

[〜#〜] vlc [〜#〜]も使用しました。次のコマンドでインストールしました:

Sudo pip install python-vlc

そして私はこのエラーを受け取りました:

NameError: no function 'libvlc_new

だから、私はコマンドを試しました:

Sudo apt-get install vlc

そしてそれはこのコードで動作しました:

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()

それがあなたを助けることを願っています。

2

これはファイルを必要とせずに仕事をします:

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

あなたはplaysoundモジュールを使うことができます

from playsound import playsound
playsound(file.mp3)

ブーム、それだけです。オーディオを正しく再生し、魅力のように機能します

1

私はあなたが探していると思います:

pyttsx3

そのオフラインクロスプラットフォームTTSは、python3およびpython2と互換性があります。

インストール:

pip install pyttsx3

pythonのオフラインTTSが必要な場合、gTTSとは異なり、pyttsx3が私の意見では最良の選択です。

1
Natesh bhat

AVbinエラーが発生した場合...

最初にAVbin.exeをダウンロードしてインストールし、次にローカルディスクCに移動します-> Windows-> System32-> Avbin.dllを検索してそのファイルをコピーし、その特定のファイルをルートディレクトリに貼り付けます

エラーは消えます

0
jerald king

webbrowserは、標準のpython installの一部である必要があります。webbrowser.pyC:\Your_Python_Folder\Lib

以下のコードは、webbrowser.pyは上記のフォルダにあります。

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

すべての質問に対する解決策はわかりませんが、pydubで発生している問題は、ffmpegまたはavconvがインストールされていないことです。 pydub github に手順があります:

ウィンドウズ:

  1. ここで提供されているWindowsバイナリからlibavをダウンロードして抽出します。
  2. Libav/binフォルダーをPATH envvarに追加します
  3. pipインストールpydub
0
Jiaaro

Windowsを使用している場合は、これで十分です。

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

このパッケージはWindowsのpythonにのみ存在することを覚えておいてください。

0
Nixel

python -m pip install pygletを使用してpygletをインストールする

ダウンロードはここにインストール AVbinセットアップへのリンク (これは必須です)

32/64ビット

import pyglet

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

それで全部です。

0
user5680356