Differenze tra le versioni di "Eseguire un file WAV mediante le funzioni esterne del API di Flite"
Da Gambas-it.org - Wikipedia.
(5 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
'''Flite''' è una libreria semplice e snella per eseguire la conversione da testo-a-parlato (''text-to-speech''). Consente, comunque, anche di eseguire un file audio di formato WAV. | '''Flite''' è una libreria semplice e snella per eseguire la conversione da testo-a-parlato (''text-to-speech''). Consente, comunque, anche di eseguire un file audio di formato WAV. | ||
− | E' necessario avere installata nel sistema e richiamare in Gambas la libreria | + | E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "''libflite.so.2.2'' ". |
− | |||
Di seguito un semplice esempio: | Di seguito un semplice esempio: | ||
− | Library "libflite: | + | Library "libflite:2.2" |
Public Struct cst_wave | Public Struct cst_wave | ||
Riga 30: | Riga 29: | ||
− | + | Public Sub Main() | |
Dim wav As Cst_wave | Dim wav As Cst_wave | ||
Dim filewave As String | Dim filewave As String | ||
− | + | filewave = "<FONT Color=darkgreen>''/percorso/del/file.wav''</font>" | |
<FONT Color=gray>' ''Inizializza la Struttura "cst_wave":''</font> | <FONT Color=gray>' ''Inizializza la Struttura "cst_wave":''</font> | ||
− | + | wav = new_wave() | |
<FONT Color=gray>' ''Verifica che il file caricato sia del formato riff-wav:''</font> | <FONT Color=gray>' ''Verifica che il file caricato sia del formato riff-wav:''</font> | ||
− | + | If cst_wave_load_riff(wav, filewave) <> CST_OK_FORMAT Then | |
− | + | Error.Raise("Impossibile leggere il file: formato errato !") | |
− | + | Endif | |
+ | |||
+ | With wav | ||
+ | Print "Frequenza di campionamento: "; .sample_rate; " hertz" | ||
+ | Print "Numero canali: "; .num_channels | ||
+ | Print "Durata: "; Time(0, 0, 0, (.num_samples / .sample_rate) * 1000) | ||
+ | End With | ||
<FONT Color=gray>' ''Esegue il file wav:''</font> | <FONT Color=gray>' ''Esegue il file wav:''</font> | ||
− | + | play_wave(wav) | |
<FONT Color=gray>' ''Va in chiusura:''</font> | <FONT Color=gray>' ''Va in chiusura:''</font> | ||
− | + | delete_wave(wav) | |
− | + | End | |
− | |||
Versione attuale delle 05:50, 14 gen 2024
Flite è una libreria semplice e snella per eseguire la conversione da testo-a-parlato (text-to-speech). Consente, comunque, anche di eseguire un file audio di formato WAV.
E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "libflite.so.2.2 ".
Di seguito un semplice esempio:
Library "libflite:2.2" Public Struct cst_wave type As Pointer sample_rate As Integer num_samples As Integer num_channels As Integer samples As Pointer End Struct Private CST_OK_FORMAT As Integer = 0 ' cst_wave *new_wave() Private Extern new_wave() As Pointer ' int cst_wave_load_riff(cst_wave *w, const char *filename) Private Extern cst_wave_load_riff(w As Cst_wave, filename As String) As Integer ' int play_wave(cst_wave *w) Private Extern play_wave(w As Cst_wave) As Integer ' void delete_wave(cst_wave *val) Private Extern delete_wave(w As Cst_wave) Public Sub Main() Dim wav As Cst_wave Dim filewave As String filewave = "/percorso/del/file.wav" ' Inizializza la Struttura "cst_wave": wav = new_wave() ' Verifica che il file caricato sia del formato riff-wav: If cst_wave_load_riff(wav, filewave) <> CST_OK_FORMAT Then Error.Raise("Impossibile leggere il file: formato errato !") Endif With wav Print "Frequenza di campionamento: "; .sample_rate; " hertz" Print "Numero canali: "; .num_channels Print "Durata: "; Time(0, 0, 0, (.num_samples / .sample_rate) * 1000) End With ' Esegue il file wav: play_wave(wav) ' Va in chiusura: delete_wave(wav) End