当前位置:   article > 正文

小案例:用Python制作一个语音朗读工具_python语音播放文本

python语音播放文本

朗读工具使用步骤如下:

        1.需要输入要朗读的内容。

        2.需要设置语速和发音

        3.朗读内容

下面是程序展示:

 

设计该程序时需要导入两个第三方库: PySimpleGUI,pyttsx3。要想让朗读效果更佳可以导入_thread库新建线程以供朗读。

  1. from pyttsx3 import init
  2. from PySimpleGUI import Window,Slider,B,T,ML,Drop
  3. from _thread import start_new_thread

然后,我们需要设置发音,就需要使用字典通过用户选择的发音名称来设置发音:

  1. vioce = {'普通话':'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0','粤语':'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-HK_TRACY_11.0',
  2. '台湾普通话':'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-TW_HANHAN_11.0'}

接着,我们需要让pyttsx3先初始化以下:

say = init()

新建线程朗读的代码,参数分别是朗读内容、朗读发音、朗读声音、朗读语速:

  1. def read_text(text,rate,volume,voice):
  2. say.setProperty('rate',rate)
  3. say.setProperty('volume',volume / 100)
  4. say.setProperty('voice',voice)
  5. say.say(text)
  6. say.runAndWait()
  7. say.stop()

接下来就是朗读工具窗口布局:

  1. layout = [
  2. [T('请在下面写入要朗读的内容',font = (None,15))],
  3. [ML(font = ('宋体',13),size = (50,10),autoscroll = 1)],
  4. [T('请设置朗读语速',font = ('宋体',12)),Slider(range = (1,250),default_value = 150,orientation = 'h')],
  5. [T('请设置朗读音量',font = ('宋体',12)),Slider(range = (1,100),default_value = 100,orientation = 'h')],
  6. [T('请设置朗读发音',font = ('宋体',12)),Drop(list(vioce.keys()),size = (10,1),default_value = '普通话')],
  7. [B('开始朗读'),B('退出')]
  8. ]

最后是窗口的代码:

  1. while 1:
  2. event,values = window.read()
  3. if event in (None,'退出'):
  4. break
  5. elif event == '开始朗读':
  6. try:
  7. start_new_thread(read_text,(values[0],values[1],values[2],vioce[values[3]]))
  8. except RuntimeError:
  9. print('不要再朗读的过程中点击其他按钮哦!')
  10. window.close()

接下来是全部代码展示:

  1. from pyttsx3 import init
  2. from PySimpleGUI import Window,Slider,B,T,ML,Drop
  3. from _thread import start_new_thread
  4. vioce = {'普通话':'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0','粤语':'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-HK_TRACY_11.0',
  5. '台湾普通话':'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-TW_HANHAN_11.0'}
  6. say = init()
  7. def read_text(text,rate,volume,voice):
  8. say.setProperty('rate',rate)
  9. say.setProperty('volume',volume / 100)
  10. say.setProperty('voice',voice)
  11. say.say(text)
  12. say.runAndWait()
  13. say.stop()
  14. layout = [
  15. [T('请在下面写入要朗读的内容',font = (None,15))],
  16. [ML(font = ('宋体',13),size = (50,10),autoscroll = 1)],
  17. [T('请设置朗读语速',font = ('宋体',12)),Slider(range = (1,250),default_value = 150,orientation = 'h')],
  18. [T('请设置朗读音量',font = ('宋体',12)),Slider(range = (1,100),default_value = 100,orientation = 'h')],
  19. [T('请设置朗读发音',font = ('宋体',12)),Drop(list(vioce.keys()),size = (10,1),default_value = '普通话')],
  20. [B('开始朗读'),B('退出')]
  21. ]
  22. window = Window('文字朗读工具',layout)
  23. while 1:
  24. event,values = window.read()
  25. if event in (None,'退出'):
  26. break
  27. elif event == '开始朗读':
  28. try:
  29. start_new_thread(read_text,(values[0],values[1],values[2],vioce[values[3]]))
  30. except RuntimeError:
  31. print('不要再朗读的过程中点击其他按钮哦!')
  32. window.close()

以上便是全部内容,感谢大家的观看!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/201663
推荐阅读
相关标签
  

闽ICP备14008679号