Home Programmeren met de Fluency API

Inleiding

De Fluency API is een set functies waarmee je Fluency TTS vanuit een applicatie kunt aansturen.

Als je programmeert in een van de onderstaande programmeertalen, dan kun je snel van start gaan door de bijbehorende include-files te downloaden. Deze bestanden geven de definities van alle API-functies voor de betreffende taal, alsmede functies om Fluency TTS in het geheugen te laden en weer vrij te geven.

taal include file
Delphi FluencyAPI.pas
C++ FluencyAPI.h
FluencyAPI.cpp

Zie tevens de pagina met voorbeeldapplicaties. Daar vind je ook een uitgewerkt programmeervoorbeeld voor de .NET omgeving.

Voor andere programmeertalen zul je eerst wat handwerk moeten doen.


Fluency TTS in het geheugen laden

Het hart van Fluency TTS is een dll met de naam FLUENCY.DLL. Deze dll bevindt zich in de map waar Fluency TTS geïnstalleerd is.

Voordat je programma de dll kan laden, moet het dus eerst uitvinden waar Fluency TTS geïnstalleerd is. Dat doe je door de volgende registerwaarde uit te lezen:

HKEY_LOCAL_MACHINE\Software\Fluency\TTS\Path=...

Deze registerwaarde geeft het pad naar de map waar FLUENCY.DLL zich bevindt.

Vanaf versie 8.0 van Fluency TTS worden ook 64-bit programma's ondersteund. De 64-bit versie van FLUENCY.DLL bevindt zich in de submap "\x64".

Bovendien geldt vanaf versie 8.0 dat je de Windows-functie SetDllDirectory moet aanroepen met het pad naar FLUENCY.DLL, zodat een aantal DLL's gevonden wordt die nodig zijn om FLUENCY.DLL te kunnen laden.

Vervolgens kun je de Windows API-functie LoadLibrary gebruiken om de dll te laden. Met GetProcAddress kun je het adres van de verschillende functies van de Fluency API vinden. En aan het eind geef je de dll weer vrij met de functie FreeLibrary.


Enkele opmerkingen

Fluency TTS draait mee op de main thread van je applicatie. Voor het (asynchroon) uitspreken van tekst is het bovendien afhankelijk van een message loop. Dit maakt console-applicaties wat lastig te programmeren: je moet minimaal een message loop gaande houden, anders hoor je niks!

Het is mogelijk om verschillende kanalen (met verschillende stemmen) tegelijk te laten spreken.

Fluency TTS biedt ondersteuning voor multi-threading. Vanaf versie 8.0 is het ook niet meer nodig de toegang tot de API-functies te synchroniseren, en is FLUENCY.DLL geheel thread-safe.

Geen licentie nodig

Ja, je leest het goed. Je hebt geen licentie nodig om een toepassing te maken met Fluency TTS, want bijna alle API-functies werken ook met de demo-versie.

SAPI

Je kunt Fluency TTS ook aansturen via SAPI5, het standaard spraakinterface van Windows.

Het voordeel hiervan is dat je dezelfde code gebruikt waarmee je ook andere spraaksynthesizers aanstuurt.

Het nadeel is dat je je moet richten op de grootste gemene deler, omdat spraaksynthesizers toch verschillen in de manier waarop ze tekst interpreteren.