• pyttsx3


    用法:

    import pyttsx3
    engine = pyttsx3.init()
    engine.say("I will speak this text")
    engine.runAndWait()
    

    更改语音、速率和音量:

    import pyttsx3
    engine = pyttsx3.init() # object creation
    
    """ RATE"""
    rate = engine.getProperty('rate')   # getting details of current speaking rate
    print (rate)                        #printing current voice rate
    engine.setProperty('rate', 125)     # setting up new voice rate
    
    
    """VOLUME"""
    volume = engine.getProperty('volume')   #getting to know current volume level (min=0 and max=1)
    print (volume)                          #printing current volume level
    engine.setProperty('volume',1.0)    # setting up volume level  between 0 and 1
    
    """VOICE"""
    voices = engine.getProperty('voices')       #getting details of current voice
    #engine.setProperty('voice', voices[0].id)  #changing index, changes voices. o for male
    engine.setProperty('voice', voices[1].id)   #changing index, changes voices. 1 for female
    
    engine.say("Hello World!")
    engine.say('My current speaking rate is ' + str(rate))
    engine.runAndWait()
    engine.stop()



    for more:https://www.cnpython.com/pypi/pyttsx3


    口语文字

    import pyttsx3
    engine = pyttsx3.init()
    engine.say('Sally sells seashells by the seashore.')
    engine.say('The quick brown fox jumped over the lazy dog.')
    engine.runAndWait()
    

    将声音保存到文件中

    import pyttsx3
    engine = pyttsx3.init()
    engine.save_to_file('Hello World' , 'test.mp3')
    engine.runAndWait()
    

    监听事件

    import pyttsx3
    def onStart(name):
       print 'starting', name
    def onWord(name, location, length):
       print 'word', name, location, length
    def onEnd(name, completed):
       print 'finishing', name, completed
    engine = pyttsx3.init()
    engine.connect('started-utterance', onStart)
    engine.connect('started-word', onWord)
    engine.connect('finished-utterance', onEnd)
    engine.say('The quick brown fox jumped over the lazy dog.')
    engine.runAndWait()
    

    中断话语

    import pyttsx3
    def onWord(name, location, length):
       print 'word', name, location, length
       if location > 10:
          engine.stop()
    engine = pyttsx3.init()
    engine.connect('started-word', onWord)
    engine.say('The quick brown fox jumped over the lazy dog.')
    engine.runAndWait()
    

    改变音色

    engine = pyttsx3.init()
    voices = engine.getProperty('voices')
    for voice in voices:
       engine.setProperty('voice', voice.id)
       engine.say('The quick brown fox jumped over the lazy dog.')
    engine.runAndWait()
    

    改变语速

    engine = pyttsx3.init()
    rate = engine.getProperty('rate')
    engine.setProperty('rate', rate+50)
    engine.say('The quick brown fox jumped over the lazy dog.')
    engine.runAndWait()
    

    更改卷

    engine = pyttsx3.init()
    volume = engine.getProperty('volume')
    engine.setProperty('volume', volume-0.25)
    engine.say('The quick brown fox jumped over the lazy dog.')
    engine.runAndWait()
    

    运行驱动程序事件循环

    engine = pyttsx3.init()
    def onStart(name):
       print 'starting', name
    def onWord(name, location, length):
       print 'word', name, location, length
    def onEnd(name, completed):
       print 'finishing', name, completed
       if name == 'fox':
          engine.say('What a lazy dog!', 'dog')
       elif name == 'dog':
          engine.endLoop()
    engine = pyttsx3.init()
    engine.connect('started-utterance', onStart)
    engine.connect('started-word', onWord)
    engine.connect('finished-utterance', onEnd)
    engine.say('The quick brown fox jumped over the lazy dog.', 'fox')
    engine.startLoop()
    

    使用外部事件循环

    engine = pyttsx3.init()
    engine.say('The quick brown fox jumped over the lazy dog.', 'fox')
    engine.startLoop(False)
    # engine.iterate() must be called inside externalLoop()
    externalLoop()
    engine.endLoop()
  • 相关阅读:
    [Javascript] Data ownership, avoid accidently mutation
    [Next.js] Consume Next.js API routes with the SWR library on the client-side
    [ARIA] Read error message for the focused form field by using aria-describedby
    [ARIA] Group different DOM element in screen reader by using aria-labelledby
    [React] Handle HTTP Errors with React
    [Angular] Modify :before / :after value from Javascirpt
    [Javascript] Finding Sibling Elements
    [Javascript] Finding Parent Elements
    MAC之find与grep
    Android只播放gif动画
  • 原文地址:https://www.cnblogs.com/diracy/p/14296600.html
Copyright © 2020-2023  润新知