方法2:使用
我已经知道如何使用gTTS(谷歌的文本到语音模块(,但我不知道如何将它所说的一切都输入音频!基本上,我想制作一个通过麦克风说话的程序,任何在另一端听的人都能听到!
解决方案
您可以使用以下方法。
方法1:Microsoft语音引擎(在Windows 10上测试(
在Windows 10平台上,您可以使用以下替代方案。
import win32com.client as wincl
speaker = wincl.Dispatch("SAPI.SpVoice")
speaker.Speak("Hello World")
方法2:使用gtts
+pygame
(独立于操作系统的解决方案(
在这里,您可以使用gtts
将文本保存为mp3文件,然后使用pygame
加载并播放。
步骤1:将文本保存为MP3文件
#pip install gTTS
from gtts import gTTS
tts = gTTS(text='Good morning', lang='en')
tts.save("good.mp3")
步骤2:加载和播放MP3文件
#pip install pygame
from pygame import mixer
mixer.init()
mixer.music.load('good.mp3')
mixer.music.play()
另一个选项:使用VLC MediaPlayer播放MP3文件。
#pip install python-vlc
import vlc
p = vlc.MediaPlayer("good.mp3")
p.play()
方法3:从缓冲区直接进行文本到语音的播放
无需保存为mp3文件。
来源:
- gTTS直接输出
- https://gtts.readthedocs.io/en/latest/module.html#playing-直接发声
- https://gist.github.com/lamegaton/1c7f383d6434a9b02f5652ddbee258d9
from gtts import gTTS
from io import BytesIO
# Use gTTS to Store Speech on Buffer
tts = gTTS(text='Good morning', lang='en')
mp3 = BytesIO()
tts.write_to_fp(mp3)
mp3.seek(0)
# Play from Buffer
mixer.init()
mixer.music.load(mp3)
mixer.music.play()
参考文献
- https://pythonprogramminglanguage.com/text-to-speech/
- https://pypi.org/project/gTTS/
- 在python上播放mp3歌曲