有没有一个模块可以让我让Python把事情说成音频?通过麦克风



我已经知道如何使用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文件。

来源:

  1. gTTS直接输出
  2. https://gtts.readthedocs.io/en/latest/module.html#playing-直接发声
  3. 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()

参考文献

  1. https://pythonprogramminglanguage.com/text-to-speech/
  2. https://pypi.org/project/gTTS/
  3. 在python上播放mp3歌曲

相关内容

  • 没有找到相关文章

最新更新