gpt4 book ai didi

python - 如何在东芝笔记本电脑和 Windows 7 上使用 python 进行文本转语音?

转载 作者:行者123 更新时间:2023-12-04 20:44:22 25 4
gpt4 key购买 nike

我正在尝试找到一种在 python 中创建文本到语音的方法(我在 Windows 7 上)。我正在使用 pyinstaller 来编译这个程序。我尝试了很多方法,包括使用通过 urllib2 模块访问的 Google 的非官方文本到语音程序。这最终创建了一个 mp3 文件。有关代码的详细信息,此代码大部分来自 http://glowingpython.blogspot.com/2012/11/text-to-speech-with-correct-intonation.html .然后我需要播放生成的 mp3 文件。我使用过 mplayer、ffmpeg、mp3play、audiere、pydub 和 pygame,结果都一样:没有播放声音,但没有引发异常。我什至在树莓派上使用了相同的 pygame 代码并成功播放了一个 mp3 文件。我也尝试将其转换为 wav 文件,效果很好,只有当我尝试使用 pygame 或 winsound 播放时,才会发生同样的事情。没有声音,没有异常(exception)。我当前的代码使用winsound,播放一个可以在windows media player中成功播放的wav文件(我什至可以使用os.startfile()从python在windows media player中打开它)。这里是:

winsound.PlaySound("file.wav", winsound.SND_FILENAME)    #the wav file is in the same directory as the program

我也在尝试使用 pygame 混音器和音乐模块。例如:
init()                            #this is pygame.init(), I only imported init and the mixer module
pygame.mixer.init() #initializes pygame.mixer
pygame.mixer.music.load(filename) #loads it in music
pygame.mixer.music.play() #plays it in music
time.sleep(20)

我什至用 winsound 和 win32api Beep() 函数成功地播放了来自 python 的声音。但是,这显然不能播放 mp3 或 wav 文件。我还尝试了一个完全不同的文本到语音引擎,它使用 pyttsx 播放没有 mp3 文件的声音:
import pyttsx

engine = pyttsx.init()

def tts(mytext):
engine.say(mytext)
engine.runAndWait()

这也未能产生声音,或引发异常。因为这种模式,我有一种感觉,这与系统有关,但似乎并不明显。

因为这几乎肯定与硬件有关(pygame.mixer 在不同的硬件上以这种方式工作,我确信它通常在 Windows 上工作)知道我使用的是东芝笔记本电脑可能很重要。另外,我使用的是 python 2.7。

理想情况下,我想用 pygame 来做这件事,因为我有最丰富的使用经验,并且如果可能的话,我想在 pygame 中使用一些声音编辑功能。

我还尝试使用 64 位 python(我在 64 位 windows 7 上使用 32 位 python)。它仍然无法正常工作。

我还尝试在 Ubuntu 虚拟盒环境中播放 mp3 文件,但在同一设备上。它仍然没有工作。这并不特别令人惊讶,因为 virtualbox 使用主机操作系统的大量资源(如屏幕和 wi​​fi),因此它播放的声音不一定会有任何不同。任何解决此问题的方法都会有所帮助。有些声音播放得很好,只是不是特别是 python 中的 mp3 或 wav 文件,所以可能有一个解决方案。

最佳答案

此错误表示它找不到 MPlayer 的可执行文件,因为您只使用了 mplayer 包装器。

File ".\program.py", line 1681, in playsound
player = mplayer.Player()
File "C:\Users\Student\Documents\notes\mplayer.py", line 109, in __init__
self.spawn()
File "C:\Users\Student\Documents\notes\mplayer.py", line 319, in spawn
close_fds=(not subprocess.mswindows))
File "C:\Python27\lib\subprocess.py", line 711, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 948, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

您可以从这里获得 MPlayer 二进制文件: http://www.mplayerhq.hu/design7/dload.html

大多数其他 python 程序使用 ffmpeg 并编写一些包装脚本来播放 mp3 文件。

也许你可以从 music-player 中得到启发

在 Python 官方网站上也有一个页面,您可以在其中找到一些库。 https://wiki.python.org/moin/PythonInMusic
但请注意,它们中的大多数都已过时。

pygame 的问题是,您需要检查音乐是否正在播放,并在播放音乐时保持程序打开。

这可以这样做:
FRAMERATE = 30
clock = pygame.time.Clock()
pygame.mixer.music.load(soundfile)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
clock.tick(FRAMERATE)

编辑:对于您的赏金,如果您不使用 pygame 和包含的 sdl 库,则没有一个非常简单的解决方案。
最好在没有 py2exe 的情况下换掉 py2exe/创建自己的“exe”。

关于python - 如何在东芝笔记本电脑和 Windows 7 上使用 python 进行文本转语音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20696948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com