Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2012 10:59:19

evgenyivanov
От:
Зарегистрирован: 2011-09-27
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Не срабатывет InputDevice Skype4Py

Решил написать простую программу: набирается тектс, с помощь гугл-переводчика сохраняется в мп-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()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version