如何在东芝笔记本电脑和Windows 7上使用python进行文本到语音转
我试图找到一种方法在
python中创建文本到语音(我在
Windows 7上).我正在使用pyinstaller来编译这个程序.我尝试了很多方法,包括使用谷歌通过urllib2模块访问的非官方文本到语音程序.这最终会创建一个mp3文件.有关代码的详细信息,此代码大部分来自
http://glowingpython.blogspot.com/2012/11/text-to-speech-with-correct-intonation.html.然后我需要播放生成的mp3文件.我使用了mplayer,ffmpeg,mp3play,audiere,pydub和pygame都有相同的结果:没有播放声音,但没有引发异常.我甚至在覆盆子pi上使用了相同的pygame代码并成功播放了mp3文件.我也尝试将它转换为一个wav文件,它运行良好,只有当我尝试用pygame或winsound播放它时,同样的事情发生了.没有声音,没有例外.我当前的代码使用winsound,播放我可以在Windows媒体播放器中成功播放的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使用来自主机操作系统的大量资源(如屏幕和wifi),因此它不一定会以不同的方式播放声音.任何解决方法都会有所帮助.有些声音很好,在python中没有专门的mp3或wav文件,所以可能有一个解决方案.
此错误表示它无法找到MPlayer的可执行文件,因为您只使用mplayer包装器.
File ".program.py",line 1681,in playsound player = mplayer.Player() File "C:UsersStudentDocumentsnotesmplayer.py",line 109,in __init__ self.spawn() File "C:UsersStudentDocumentsnotesmplayer.py",line 319,in spawn close_fds=(not subprocess.mswindows)) File "C:Python27libsubprocess.py",line 711,in __init__ errread,errwrite) File "C:Python27libsubprocess.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 /创建自己的“exe”而不用py2exe. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – 我可以让我的服务让Windows无法入睡吗?
- 在Windows Azure虚拟机VM上安装FTP应用程序FileZilla Serve
- windows – 在WinRT XAML中的GridView项目组内垂直滚动
- 检查文件是否为只读,并在Windows批处理文件中进行更改
- Windows上的LLVM-Assembly语言中的Hello World
- windows – 如何从wmic输出中删除空行?
- MSDOS“Hello World”EXE
- 如何在MS Windows上组合Emacs主/剪贴板复制和粘贴行为?
- Windows 8 ARM,A.K.A. “Windows RT”有Winapi(win32)可供第
- Windows – 将cygwin从一台机器移动到另一台机器时要复制什
- windows-server-2008 – 我在Windows Server 200
- 通用Windows平台应用程序和C/C++LI(VS 2015 RC1)
- 有没有办法让tortisesvn使用Windows 7 kerberos票
- windows-server-2008-r2 – Win2k8R2获取DHCPv6地
- 【原】无脑操作:Windows下搭建Kafka运行环境
- 在Windows上更改Atom-editor的Platformio-Ide-Te
- 如何在Windows上安装PyGI(Python Gobject Intros
- 使用WPF DataGridHyperLinkColumn项打开Windows资
- windows-server-2008-r2 – 如何使用命令行获取I
- 在我的.NET Windows窗体上从Chrome实现拖放