Форум сайта python.su
Решил написать простую программу: набирается тектс, с помощь гугл-переводчика сохраняется в мп-3, далее конвертируется в вав и скармливается скайпу. Примеры каждого по-отдельности накопал в Сети.
Программа звонит, возвращает мп3, конвертирует в вав, но InputDevice не срабатывает
import urllib import grab from grab import * import time from Tkinter import * import Skype4Py from Skype4Py import * def callback(): global cl cl=skype.PlaceCall(ent.get()) def send(): global l2, c1 sintez_word = urllib.quote(ent1.get()) g = Grab() g.setup(user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/12.04 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19") g.go('http://translate.google.com/translate_tts?tl=en&q='+sintez_word) f = open('c:/python_internet/1.mp3','wb') f.write(g.response.body) f.close() time.sleep(1) dumpWAV() time.sleep(1) cl.InputDevice(Skype4Py.callIoDeviceTypeFile,'c:/python_internet/1.wav') l2.configure(text = ent1.get()) def dumpWAV( ): import pymedia.audio.acodec as acodec import pymedia.muxer as muxer import time, wave, string, os name1= 'c:/python_internet/1.mp3' name2= 'c:/python_internet/1.wav' # Open demuxer first dm= muxer.Demuxer( name1[ -1 ].lower() ) dec= None f= open( 'c:/python_internet/1.mp3', 'rb' ) snd= None s= " " while len( s ): s= f.read( 20000 ) if len( s ): frames= dm.parse( s ) for fr in frames: if dec== None: # Open decoder dec= acodec.Decoder( dm.streams[ 0 ] ) r= dec.decode( fr[ 1 ] ) if r and r.data: if snd== None: snd= wave.open( name2+ '.wav', 'wb' ) snd.setparams( (r.channels, 2, r.sample_rate, 0, 'NONE','') ) snd.writeframes( r.data ) root = Tk() text ='' skype = Skype4Py.Skype() skype.Attach() cl='' l = Label(root, width = 80) l.grid(row =0, column = 0) l.configure(text = 'user') ent = Entry(root, width = 40) ent.grid(row =0, column = 1) b = Button(root, text="Call", command=callback) b.grid(row =0, column = 2) l1 = Label(root, width = 80) l1.grid(row =3, column = 0) ent1 = Entry(root, width = 40) ent1.grid(row =3, column = 0) b1 = Button(root, text="Send", command=send) b1.grid(row =3, column = 3) l2 = Label(root, width = 80) l2.grid(row =4, column = 0) l2.configure(text = text) m = Menu(root) root.config(menu=m) fm = Menu(m) m.add_cascade(label="File",menu=fm) fm.add_command(label="Exit", command = lambda: root.destroy()) root.mainloop()
Офлайн