Eseguire un file WAV mediante le funzioni esterne del API di Flite

Da Gambas-it.org - Wikipedia.
Versione del 28 mag 2016 alle 08:56 di Vuott (Discussione | contributi) (Creata pagina con "'''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...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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 dinamica condivisa: "libflite.so.1.4"


Di seguito un semplice esempio:

Library "libflite:1.4"

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
   
' Esegue il file wav:
  play_wave(wav)
   
' Va in chiusura:
  delete_wave(wav)
  
End



Riferimenti