[Python] pybass, come sincronizzare un flusso audio con la sintesi vocale?

2015-08-26 Thread Adriano Barbieri

Buongiorno,
Tramite pybass
https://pypi.python.org/pypi/pybass/
Ho la necessità di far suonare un mp3 e che durante l'esecuzione la sintesi 
vocale, non venga interrotta (uso uno screen reader);
Quello che segue dopo la firma è la parte di codice che sto usando e che 
funziona bene, a parte che mancando la documentazione per il modulo pybass e 
gli esempi contenuti nel pacchetto siano privi di adeguati commenti, non ho 
idea di come fare per sincronizzare i due flussi in modo che possano girare 
assieme.
Questo 'è quanto ho trovato per la bass.dll, con alcuni brevissimi esempi in 
c, che non conosco...

http://www.un4seen.com/doc/#bass/multichan.html

Se faccio parlare il sintetizzatore e partire l'mp3, parte l'mp3, 
successivamente parla la sintesi.

Come posso modificare questo codice per sincronizzare i due fluussi audio?
Grazie.

Adriano

from pybass import *

filename = 'traccia_di_prova.mp3'
BASS_Init(-1, 44100, 0, 0, 0)
   handle = BASS_StreamCreateFile(False, b'%s' % filename, 0, 0, 0)
   play_handle(handle, show_tags=False)
   BASS_Free() 


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pybass, come sincronizzare un flusso audio con la sintesi vocale?

2015-08-31 Thread Pietro Battiston
Ciao Adriano,

Il giorno mer, 26/08/2015 alle 09.45 +0200, Adriano Barbieri ha
scritto:
> Buongiorno,
> Tramite pybass
> https://pypi.python.org/pypi/pybass/
> Ho la necessità di far suonare un mp3 e che durante l'esecuzione la 
> sintesi 
> vocale, non venga interrotta (uso uno screen reader);

Per quel che posso capirne, che francamente non è molto (mai sentito
pybass prima), ci sono due possibilità:
1) il reader è intelligente (molto! forse troppo per essere vero): si
accorge che il tuo programmino emette audio, e si mette bravo bravo ad
aspettare che abbia finito
2) il reader prova a leggere ed emettere suono, ma pybass si è già
fregato l'interfaccia audio in modo esclusivo, e quindi il reader
riesce a farsi sentire solo una volta che è stata liberata

Ma entrambe le spiegazioni mi convincono poco. Che sistema operativo
usi? Cosa succede se invece che usare pybass fai partire un player
esterno (es. vlc) con subprocess.call? E se prima del tuo codice metti
un time.sleep(5)?

Per la cronaca, per emettere suoni, anche da più fonti in
contemporanea, ho sempre usato gstreamer e mi sono trovato bene.

Pietro

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python