Играй в GIF и голос вместе.#wxPython # python3 - PullRequest
0 голосов
/ 20 октября 2018

Мой код:

import wx
import wx.adv
import os
import threading


class MyPanel(wx.Panel):

    def __init__(self, parent, id):
        wx.Panel.__init__(self, parent, id)
        self.SetBackgroundColour("white")

        gif_fname = wx.adv.Animation("edza_face.gif")
        gif = wx.adv.AnimationCtrl(self, id, gif_fname, pos=(1, 1))
        gif.GetAnimation()

        self.gif = gif
        self.Show()
        bmp = wx.Bitmap("microphone.png", wx.BITMAP_TYPE_ANY)
        self.button = wx.BitmapButton(self, id=wx.ID_ANY, bitmap=bmp,
                                      size=(bmp.GetWidth() + 10, 
                                      bmp.GetHeight() + 10), pos=(500, 300))
        self.button.Bind(wx.EVT_BUTTON, self.onButton)
        self.gif.Stop()

    def onButton(self, event):

        def b():
            self.gif.Play()

        p2 = threading.Thread(target=os.system('espeak "hello a b c d e  
                              h i j"'), args=(10, 10))
        p1 = threading.Thread(target=b(), args=(0, 10))

        # starting process 1
        p1.start()
        # starting process 2
        p2.start()

        # wait until process 1 is finished
        p1.join()
        # wait until process 2 is finished
        p2.join()



if __name__ == "__main__":
    app = wx.App()
    frame = wx.Frame(None,
                     pos=wx.DefaultPosition, size=wx.Size(1000, 600),
                     style=wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION |
                     wx.CLOSE_BOX | wx.CLIP_CHILDREN,
                     title="v3.0-beta")
    frame.SetIcon(wx.Icon("icons8-mind-map-48.ico"))
    MyPanel(frame, -1)
    frame.Show(True)
    app.MainLoop()

Я работаю над чат-ботом и хочу, чтобы gif начал играть с голосовым текстом (espeak).Я хочу, чтобы GIF и звук запускались одновременно.Но GIF начинает играть только после того, как произнесена вся фраза (tts espeak).Как мне начать оба начала вместе и, если возможно, закончить одновременно.Я использую Python3, wxPython Phoenix и espeak (используя os.system)

Пожалуйста, помогите

...