Gambas-it

Programmazione => Progetti degli utenti => Topic aperto da: Ceskho - 07 Settembre 2008, 15:36:04

Titolo: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 07 Settembre 2008, 15:36:04
Salve ragazzuoli....

Ho ideato un programma per far parlare il computer ( :-o sconcertante vero?) che si poggia su un programma per terminale (eSpeak).....

vorrei allegarvi il file sorgente così potete visualizzarlo e dirmi cosa ne pensate......ogni tipo di commento è gradito, bello o brutto che sia!!

Il codice che allego è la versione base del software....sarà infatti possibile impostare solo la lingua e la tonalità....sto ancora sviluppando la versione completa dove le impostazioni saranno mooooolto più numerose....

in attesa dei vostri pareri vi posto il file....
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 07 Settembre 2008, 17:29:14
A me non funziona. Inoltre ci sono dei bug nel codice....
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 07 Settembre 2008, 17:43:58
se mi dicessi quali mi tornerebbe più utile....

per farlo funzionare devi avere semplicemente installato eSpeak (che dovrebbe trovarsi di default sul pc)
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 07 Settembre 2008, 18:03:10
1)
Ho riavviato la tua applicazione ed ora il programma riesce a far parlare il PC anche a me. Non è che dipende dal fatto che, forse, espeak non lo avevo mai utilizzato e doveva, diciamo, essere "inizializzato" lanciandolo da terminale la prima volta? Boh..

2)
Se apri il form per configurare l'applicazione (menu "Impostazioni/Configura"), premendo il pulsante Imposta ottengo "ValueBox.Value is not static perché nel codice hai scritto ValueBox.Value invece di ValueBox1.Value.
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 07 Settembre 2008, 19:04:20
Hai pienamente ragione!!!!era un bug di cui mi ero accorto e che avevo "fixato" (quanto mi piace dirlo!!!!).....spero mi scuserai...ho caricato il programma buono...
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 20 Settembre 2008, 18:15:52
Ho completato la mia versione del programma....

ho aggiutno la possibilità di:

- salvare il file in formato .wav direttamente nella home
- regolare tono di voce e tipo (uomo-donna)
- regolare la velocità di lettura
- impostare la lingua di lettura
- importare file di testo

vorrei che qualcuno lo provasse e mi facesse sapere....mi farebbbe piacere sapere cosa ne pensate. Magari dicendomi se manca qualcosa. Ringrazio chiunque voglia aiutarmi in questo.
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 24 Settembre 2008, 02:05:24
nessuno vuole vedere anche solo per curiosità????

anche per dire solo bello o brutto?
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 24 Settembre 2008, 16:00:24
E' molto carino.
L'unica cosa che correggerei è il fatto che quando riapri la finestra delle impostazioni, non visualizza gli attuali valori ma ripropone sempre quelli standard.
Ad esempio, se imposto la voce su "maschio 2", quando riapro il pannello mi ritrovo di nuovo "maschio 1".

Correggi e poi manda in area download, che te metto online sul sito. ;-)
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 24 Settembre 2008, 16:24:46
ok...grazie mille per il suggerimento...provvedo subito....
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 24 Settembre 2008, 16:44:18
come promesso ho aggiustato il tutto...comunque avevo già tenuto in mente questa possibilità...infatti se hai notato la velocità e il tono venivano "ricordati"...poi però avevo dimenticato lingua e tipo....

posto qui il file così se qualcuno vuole ancora provarlo e dare suggerimenti è ben accetto!

grazie mille Leo per il tuo interessamento...
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: md9327 - 24 Settembre 2008, 18:23:24
Complimenti! Un bell'esempio dell'uso di gambas e l'interazione con librerie esterne.

A me ha funzionato tutto e subito, anche perchè avevo già installate le necessarie librerie... :-P
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 24 Settembre 2008, 21:58:21
Altra piccola modifica: metti un check all'avvio del programma per controllare se sono presenti le librerie necessarie al suo funzionamento ;-)
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 24 Settembre 2008, 22:50:33
Eh..bella cosa...ci devo lavorare perchè per ora non ho idea di come fare....

comunque grazie a md9327 per i complimenti e a Leo per essere il mio alpha tester di fiducia!!!
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 25 Settembre 2008, 16:02:22
Interroga da console (via SHELL) il programma chiedendo l'help (espeak --help): se hai in risposta un errore allora il programma non è installato, se ti risponde con l'help (allora è installato).
Riguardo alla risposta positiva, ho visto che tra le prime righe "spara" la versione:
Citazione

eSpeak text-to-speech: 1.36.02  13.Mar.08

Quindi, basta vedere se nell'output del comando c'è questa parte:
Codice: [Seleziona]

SHELL "espeak --help" TO variabile
IF Instr(variabile, "eSpeak text-to-speech:") < 1 THEN
  '--NON TROVATO
ENDIF
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 25 Settembre 2008, 18:11:37
ho provato a creare un form (FSplash) dove compare un messaggio che invita ad installare eSpeak...tale form deve "apparire" soo che eSpeak non c'è....

però non funziona...

ecco il codice inserito nell' Form_open: dell'FMain:

Codice: [Seleziona]

'*******************************************************
'cerca la dipendenza se presente(eSpeak)

DIM verifica AS String

SHELL "espeak --help" TO verifica

IF InStr(verifica, "eSpeak text-to-speech:") < 1 THEN

  Fmain.Visible = FALSE
  FSplash.visible = TRUE

ENDIF

'*******************************************************


ma non va...dove sbaglio?
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: md9327 - 25 Settembre 2008, 19:01:16
Puoi anche usare il comando:

# whereis espeak

e comunque è valido per tutti i programmi registrati nel sistema, ad esclusione di quelli java, che si mettono un pò per cavoli loro...

# whereis
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 25 Settembre 2008, 19:50:24
cosa deve restituirmi il comando?
scusami ma siccome non lo conosco non so come funziona...
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: md9327 - 26 Settembre 2008, 10:50:23
A parte un bel

# man whereis

il comando ritorna una stringa, contenente la directory (o le directory) che hanno quel file.
Ad esempio:

# whereis espeak

dovrebbe ritornare:

# espeak: /usr/bin/espeak /usr/include/espeak

ovviamente questo dipende dalla distribuzione linux che stai usando; alcune distro usano installare i programmi in /usr/local, altri in /usr.

Se, per caso, il programma non esiste, avrai un ritorno del tipo:

# espeak:

ovvero, senza alcuna path.
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 26 Settembre 2008, 14:36:40
Quindi mi basta analizzare il comando..e se la stringa è vuota lancio il messaggio per inviare espeak giusto?
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: md9327 - 26 Settembre 2008, 20:09:04
Se per "inviare" intendi la richiesta di installazione del programma, SI!

Il comando whereis in pratica interroga il reporitory del sistema ritornando, se trovato, tutte le path che lo contengono; questo vuol dire che puoi fare anche delle interrogazioni parziali (infatti whereis non prende in considerazione il punto di separazione delle estensioni).

Se, ed il caso delle librerie, vengono trovati più riferimenti, la stringa di ritorno conterrà tutte le relative path.

Un analisi delle stringa, oltre il nome iniziale (e i due punti), ti permetterà di capire se ha trovato qualcosa; un'analisi più approfondita ti permetterà di capire se il riferimento è una libreria, un binario, oppure un'altra cosa...

Come avrai già capito, le path sono elencate tutte sulla stessa riga, ma divise con uno spazio; in questo modo lo split dei singoli elementi risulta semplice.
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: giulio - 28 Settembre 2008, 20:17:02
Come al solito GNU/Linux offre tanti modi per fare una cosa. Io farei così:

Codice: [Seleziona]


DIM sEspeakBinary as String

SHELL "which espeak" TO sEspeakBinary
 
IF Process.LastValue <> 0 THEN
  Message.Warning("Sembra che espeak non sia installato!", "Esci")
  sEspeakBinary = ""
  ME.Close
ENDIF

Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 29 Settembre 2008, 22:50:14
Ringrazio Giulio!!! Ho implementato il suo codice nell'avvio del mio form e l'ho testato personalmente disinstallando eSpeak e lanciando il programma....

ho inviato il file per il download!!!

Grazie a tutti..il progetto è comunque aperto per nuove idee...
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 03 Ottobre 2008, 15:51:42
Eh vai..parlAS in area download!!!!!!!

un punto a Ceskho!!!! :lol:
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: ccc - 08 Ottobre 2008, 18:58:20
Ciao, volevo segnalarti che:

- in FLingua "turkish" compare 2 volte
- "croatian" è scritto male (hai scritto "crotian")
- in FMain l'ultimo metodo definito sembrerebbe inutilizzato
- sempre in FMain le variabili che hai dichiarato a livello di classe sono usate solo da Button1_Click()

Mi sono accorto di queste cose perchè sto facendo un fork, in quanto vorrei aggiungere qualche funzionalità. Anche perchè voglio fare un po' di pratica con Gambas. Quando sarò sicuro di non aver aggiunto troppi bug (hehehe) lo metterò in rete da qualche parte... magari ti può interessare prendere qualche funzionalità dal mio fork (sempre che io riesca a inserire qualcosa di utile), ma ho rinominato molte cose, quindi il mio codice non è più compatibile col tuo.

Grazie del programmino, hai avuto una bella idea!
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 10 Ottobre 2008, 14:33:21
Se volevi potevi comodamente continuare il mio progetto.....in questo modo avremmo creato un software a più mani senza mettere in giro più programmi che fanno la stessa cosa ma che differiscono per poche cose..

per di più non ho trovato gli errori che mi hai segnalato...hai scaricato la versiona più recente del software?

EDIT: era kurdish a comparire due volte...

Per quanto riguarda le variabili dichiarate, ho deciso di non dichiararle solo per button1 in quanto avrei potuto estendere il progetto in seguito e magari mi sarebbe tornato utile averle a livello generale.
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: ccc - 10 Ottobre 2008, 15:16:39
Ho scaricato l'ultima versione che ho trovato linkata qui nel forum...

Un altro consiglio: dovresti eliminare le virgolette dal testo, nel caso che l'utente le digiti. Altrimenti il comando espeak rischia di non essere capito.

Non ho pensato subito di contattarti perchè all'inizio doveva essere un esperimento mio per familiarizzare con il linguaggio, niente di interessante insomma. Poi siccome i nomi dei controlli e di alcune variabili mi confondevano ho rinominato quasi tutto. Ora sta venendo fuori qualcosa di decente e voglio condividerlo, però come ti ho detto il mio codice ora è molto diverso dal tuo.

Ma non mi sembra un gran male: il mio fork ha più funzionalità ma sicuramente ha più bug (dovuti alla mia non conoscenza del linguaggio e al fatto che +funzionalità = +bug), mentre il tuo è più semplice e stabile.
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 10 Ottobre 2008, 17:26:47
ok d'accordo...come preferisci...il codice è aperto a tutti..mi fa piacere che ti sia stato utile...
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: - 27 Ottobre 2008, 20:54:50
x Ceskho
ottimo lavoro

mi son permesso di creare un'altra GUI con librerie Qt e modificare il progetto con un codice un diverso.dai una controllata.ti posto i sorgenti.se sei d'accordo creo il .deb




PS : ciò messo HAL in onore del CPU nel film "Odisea 2001".
     adesso cercherò di ampliare il codice con implementazione dei comandi   vocali.
     idee??
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 31 Ottobre 2008, 17:01:09
Non sapevo che il mio progetto sarebbe stata la mamma di tanti progetti satellite....se l'idea piace mi fa davvero piacere!!!
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 31 Ottobre 2008, 18:24:14
HAL a me non va....

quando premo play il programma si blocca e non posso impostare le voci perchè sono tutte uguali...
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: - 01 Novembre 2008, 17:00:12
corretti alcuni bug :hammer:
prova adesso.
se funziona,facciamo il .deb    :ciao:
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 07 Dicembre 2008, 18:10:42
@ sante caserio

ho notato su un form che ti stai interessando a portare il tuo progetto su mac...mi sbaglio?
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 01 Febbraio 2009, 10:14:48
Versione Updated in area download
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 06 Febbraio 2009, 17:45:10
Un utente mi ha gentilmente avvertito via email di un bug di parlas: nel digitare le virgolette il programma restava muto! Ho corretto il bug ed ho reimplementato la ricerca che il programma fa all'avvio per vedere se espeack è installato. Ho inviato in area download. Mi dispiace per Leo che gli devo far fare sempre tanto lavoro....
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 08 Febbraio 2009, 00:24:22
Versione Updated in area download
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 13 Febbraio 2009, 15:14:13
Ehi ragazzi,

mi rivolgo a chi ha Ubuntu Intrepid come OS...mi fareste il favore di scaricare Parlas e dopo averlo lanciato fargli dire la frase:

Questo programma è scritto in "Gambas"

Chi lo fa poi può postarmi cosa è successo?se il programma si è bloccato in corrispondenza delle virgolle o roba varia?

grazie a chiunque mi da una mano!
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 13 Febbraio 2009, 16:22:16
Non ha riprodotto nulla ed ha sfornato in console questa sfilza di errori:
Codice: [Seleziona]

PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000

Sistema audio ALSA (ma mettendo Pulse non cambia nulla).
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 13 Febbraio 2009, 16:25:10
E con una frase semplice da lo steso errore?
Il fatto è che io uso Hardy e va tutto bene dopo aver corretto il bug delle virgolette....ma un utente che i ha contattato continua ad avere problemi con i testi contenenti proprio quel simbolo....da cosa può dipendere?Non so più dove mettere mano ormai...
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 14 Febbraio 2009, 16:02:55
Con qualunque cosa dà quegli errori L'unica cosa che cambia è che scrivendo "Ciao" la lista è più corta.
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 14 Febbraio 2009, 16:19:09
a questo punto penso sia proprio un bug di espeack e quindi parlas inizia a non esserne più motivo di causa..
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 14 Febbraio 2009, 16:25:21
La versione in Ubuntu Intrepid è la 1.39, non se può servirti.
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 15 Febbraio 2009, 00:31:18
La mia è la versione 1.36....
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 16 Febbraio 2009, 23:07:40
Aggiornamento....
Ho provato Parlas sul PC di lavoro, dove ho Ubuntu 8.04.
Ho scaricato l'ultima versione del tuo programma, la 0.0.7, se non erro. Lanciandolo ottengo la sfilza di errori che ti ho segnalato alcuni post fa e mutismo totale dalle casse del PC. Cliccando invece direttamente sull'eseguibile denominato "Parla.gambas" che ho trovato nel tar ho potuto udire il PC parlare.
Che cos'hai cambiato da Parla.gambas a Parlas.gambas?
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 16 Febbraio 2009, 23:23:36
Ho solo corretto un bug per il quale se c'erano virgolette il programma si fermava...

in pratica faccio trovare al Parlas tutte le virgolette e le sostituisco con una spazio vuoto...il programma tanti spazi vuoti gli riconosce come se fossero uno solo....
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 16 Febbraio 2009, 23:42:14
Ma allora perché Parla... parla e Parlas no?
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 16 Febbraio 2009, 23:54:09
infatti Parla...parla...ma parlas...parlas!!! E' un concetto filosofico..:P

Apparte gli scherzi, non lo so...eppure sul mio computer fila tutto liscio...
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: leo72 - 17 Febbraio 2009, 10:39:14
Oggi ho provato sul mio portatile (Ubuntu 8.10) Parlas.
Ha iniziato dandomi gli stessi errori. Ho aperto allora un terminale ed ho lanciato espeak: anche lì, curiosamente, mi dava quegli errori. Dopo 2 o 3 volte che provavo, alla fine sono riuscito a farlo parlare.... non so come perché nel frattempo non ho cambiato nessuna impostazione del sistema!
Ho subito riprovato Parlas ma lui non parlava...
Credo a questo punto che ci sia qualche problema con Ubuntu e/o il server audio (io ho impostato "rilevamento automatico" nelle opzioni audio).
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 17 Febbraio 2009, 10:42:56
Non so davvero dove sbattere la testa....più riguardo il codice e più non capisco dove ho sbagliato...e per di più non ho modo di capirlo perchè a me funziona tutto alla perfezione....può dipendere anche dalla versione di gambas forse?
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: fsurfing - 17 Febbraio 2009, 13:19:53
a me non parla ne pala ne parlas ne espeak
prova a guardare sul sito di espeak se sono state fatte delle modifiche al codice
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 17 Febbraio 2009, 13:21:29
Allora tu sei proprio un caso disperato...:D
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: fsurfing - 17 Febbraio 2009, 13:24:41
sicuramente è un problema di configurazione di espeak o del sistema, il tuo programma funziona bene
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 17 Febbraio 2009, 13:37:30
Peccato...in questi giorni stavo lavorando su come importare mbrola come sintesi vocale ma se il programma gira su 1 computer su 3 è un bel problema....
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 17 Febbraio 2009, 14:53:21
Ho appena eseguito i primi test con mbrola e va tutto alla perfezione...ora devo riscrivere il codice di parlas e finalmente rilascerà la 0.1.0!!!
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: fsurfing - 18 Febbraio 2009, 00:00:31
ma utilizzerai solo mbrola come "motore " o si potrà scegliere tra vari: espeak mbrola festival eflite ...?
Titolo: Re: ParlaS - DAi voce al tuo computer
Inserito da: Ceskho - 18 Febbraio 2009, 00:06:33
festival è una sintesi vocale? pensavo fosse solo un front-end...

comunque ero indeciso se rilasciare due versioni distinte: quella con espeack (che essendo più semplice sarà più leggera) e quella per mbrola (che dovendo contenere i file delle lingue sarebbe un pò più "pesante")...oppure di implementare entrambe in un solo software......devo decidere!