7

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

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

gTTS はうまく機能し、テキスト ファイルからテキストを取得しますが、最初に mp3 ファイルを作成します。次に、聞きたい場合は、この mp3 を呼び出さなければならないので、それは良いことですが、オーディオ ファイルを使用せずに読み取りだけを取得できるとよいでしょう。テキストファイル。たぶんどういうわけか私はテキストファイルから読むためにGoogleの声を使うことができます..? とにかく今の主な質問はその他です

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

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でOK:

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

おそらくウェブブラウザかどうかはわかりませんが、インストール方法は?

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

12 に答える 12

3

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

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で動作する場合は今は使用していません。

于 2016-06-22T18:58:43.690 に答える
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
于 2017-09-24T04:31:32.937 に答える
0

webbrowser標準のpythonインストールの一部である必要があります。webbrowser.pyアンダーがあるかどうかを確認 しC:\Your_Python_Folder\Libます。

webbrowser.py以下のコードは、上記のフォルダーに存在する ため、私にとっては問題なく機能します。

import webbrowser
webbrowser.open("rec.mp3")
于 2016-04-05T16:48:18.317 に答える
0

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

ウィンドウズ:

  1. ここで提供されている Windows バイナリから libav をダウンロードして抽出します。
  2. libav /bin フォルダーを PATH envvar に追加します。
  3. ピップインストールpydub
于 2016-04-03T15:59:46.557 に答える
0

Playsoundモジュールを使用できます

from playsound import playsound
playsound(file.mp3)

ブームです。それはオーディオを正しい方法で再生し、魅力のように機能します

于 2018-03-02T09:00:44.510 に答える