Recent

Author Topic: sak (Speaker Assistive Kit) is here !  (Read 31001 times)

Fred vS

  • Hero Member
  • *****
  • Posts: 3629
    • StrumPract is the musicians best friend
Re: sak (Speaker Assistive Kit) is here !
« Reply #15 on: July 16, 2013, 02:36:56 pm »
@ Taazz, many thanks, my friend.

I gonna try this.
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: sak (Speaker Assistive Kit) is here !
« Reply #16 on: July 16, 2013, 02:38:56 pm »
You are most welcome and thanks for a great share.
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Fred vS

  • Hero Member
  • *****
  • Posts: 3629
    • StrumPract is the musicians best friend
Re: sak (Speaker Assistive Kit) is here !
« Reply #17 on: July 16, 2013, 03:04:45 pm »
@ Taazz :  ;)

Hum, about Microsoft, sometime i do not understand their policy.
They quasi impose Visual Studio for "true Windows  applications", but for a simple "Hello world" app you need to install Visual Studio run time...

If they are the boss, why not give the basic dll needed by VS in their wonderful OS ?
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: sak (Speaker Assistive Kit) is here !
« Reply #18 on: July 16, 2013, 03:41:22 pm »
Because those dlls are only needed by their C++ product line. I never included them with VB6 and I don't think that they are needed from .NET either. In their .NET push they marketed C++ as a legacy tool chain for dinosaurs and they continually pushed .NET as the! place to be for future development.. well you get the picture those dlls are not needed outside a legacy tool. At least that's my understanding of it.
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Fred vS

  • Hero Member
  • *****
  • Posts: 3629
    • StrumPract is the musicians best friend
Re: sak (Speaker Assistive Kit) is here !
« Reply #19 on: July 16, 2013, 11:07:32 pm »
Quote
In their .NET push they marketed C++ as a legacy tool chain for dinosaurs and they continually pushed .NET as the! place to be for future development

I never try .NET

Do you think it is possible to compile a C++ code with .NET ?
If it can avoid users to have to install missing VS dll, i will try to compile PortAudio and eSpeak with .NET

PS : I im not a fan of C but i find wonderful the quasi perfect interface between FPC and C.

There are a lot of excellent C libraries and it is very easy to translate the C headers into Pascal.

By the way, i want to hardly congratulate the creators of H2Pas utility.
The conversion is mostly perfect, very few things to adapt in the result.

For me, the couple FPC-applications with C-libraries is perfect.

I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

avra

  • Hero Member
  • *****
  • Posts: 2547
    • Additional info
Re: sak (Speaker Assistive Kit) is here !
« Reply #20 on: July 17, 2013, 08:39:58 am »
"The program can’t start because MSVCR110.dll is missing from your computer." when clicking 'load sak'
I call eSpeak from command line (because of license terms for commercial applications) and if I remember well then besides espeak.exe nothing else is needed. Besides this way there is also espeak_sapi.dll which uses Windows SAPI but I haven't used it.

Maybe you should try some other compiler?
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: sak (Speaker Assistive Kit) is here !
« Reply #21 on: July 17, 2013, 08:49:56 am »
I never try .NET

Do you think it is possible to compile a C++ code with .NET ?

No. You can compile c++ code for .NET but then it is considered unsafe and you have a number of problems with various installations.

If it can avoid users to have to install missing VS dll, i will try to compile PortAudio and eSpeak with .NET

Errm.... you do understand that .NET requires a run time library to be installed, just like mono on linux, that is a few mega bytes bigger than the C++ runtime right?
 
PS : I im not a fan of C but i find wonderful the quasi perfect interface between FPC and C.

There are a lot of excellent C libraries and it is very easy to translate the C headers into Pascal.

By the way, i want to hardly congratulate the creators of H2Pas utility.
The conversion is mostly perfect, very few things to adapt in the result.

For me, the couple FPC-applications with C-libraries is perfect.

Agreed H2Pas is a strong tool, very well done.
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Fred vS

  • Hero Member
  • *****
  • Posts: 3629
    • StrumPract is the musicians best friend
Re: sak (Speaker Assistive Kit) is here !
« Reply #22 on: July 17, 2013, 01:06:27 pm »
Quote
I call eSpeak from command line (because of license terms for commercial applications) and if I remember well then besides espeak.exe nothing else is needed. Besides this way there is also espeak_sapi.dll which uses Windows SAPI but I haven't used it.

Hello Avra.

I do not use espeak.exe nor espeak_sapi.dll.

I have change part of the code of espeak ( with agreement of the author ).
 
That new code for Windows allows to use espeak.dll with PortAudio.dll (not sapi like the original code), like for the Linux version of espeak.so.

The problem of compilation was, because the new espeak code is using PortAudio.dll, to first compile PortAudio with VS because VS need the .lib file of the included dll (not given by MinGw).
All the tools to extract the .lib from .dll did not work, the only way to get the .lib is to compile PortAudio.dll with VS.

After a hard battle i finally get a working espeak.dll using PortAudio.dll.

I prefer to use PortAudio because, on my systems, sapi is not working well.

If you try the new espeak.dll provided with sak, you have all  the advantage of espeak.exe but with direct access to the espeak functions via the espeak.pas header.
You have also more functions if you use espeak.dll via espeak.pas than espeak.exe  via parameters.

Also the espeak.exe file is using a static PortAudio library.
That static library included in resource is a old version of PortAudio.
The new espeak.dll uses dynamic loading of the new version of PortAudio.

Also, it seems to me that it is more fair to use espeak.dll with portaudio.dll than espeak.exe with a hided version of PortAudio (static lib included in resource of espeak.exe).

Quote
Maybe you should try some other compiler?

Why not but witch one ?


@ taazz : many thanks for clear explanations.

« Last Edit: July 17, 2013, 02:03:06 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

avra

  • Hero Member
  • *****
  • Posts: 2547
    • Additional info
Re: sak (Speaker Assistive Kit) is here !
« Reply #23 on: July 17, 2013, 02:22:50 pm »
I do not use espeak.exe nor espeak_sapi.dll. I have change part of the code of espeak (with agreement of the author).
Then any application using your DLL gets viral GPL license from eSpeak DLL, so unfortunately SAK is not for me. :(
 
Quote
Maybe you should try some other compiler?
Why not but witch one ?
I would search what did author use to produce windows executable and DLL. Probably something like MingW.
« Last Edit: July 17, 2013, 02:24:33 pm by avra »
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

Fred vS

  • Hero Member
  • *****
  • Posts: 3629
    • StrumPract is the musicians best friend
Re: sak (Speaker Assistive Kit) is here !
« Reply #24 on: July 17, 2013, 02:42:07 pm »
Quote
Then any application using your DLL gets viral GPL license from eSpeak DLL, so unfortunately SAK is not for me.

I do not understand. I had contact with the autor.
If you see the code of espeak, there is a exe, a sapi and a dll version.

The code of dll version is not working.
I have ask to the author why the dll code is not working.

He explains me that originally the code was developed for Linux, using PortAudio library.

He explains me also that he had try to adapt his code for Windows to use PortAudio too but never was able to create a working espeak.dll using portaudio.dll.
He had try with VS version 6 but it was not working.

It is the reason why he provided also code for espeak_sapi.dll.

After days and nights of battle i finally was able to compile the espeak.dll code using  VS version 11.

Of course i have sent to the author the dll and also the adaptation to code for using VS version 11.

It has no impact on the licence because licence do not specify that a certain compiler must be used.

Quote
I would search what did author use to produce windows executable and DLL. Probably something like MingW.

The author (who is a Linux developer) uses Microsoft Visual Studio version 6 for windows executable and DLL.
« Last Edit: July 17, 2013, 02:50:14 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

BigChimp

  • Hero Member
  • *****
  • Posts: 5740
  • Add to the wiki - it's free ;)
    • FPCUp, PaperTiger scanning and other open source projects
Re: sak (Speaker Assistive Kit) is here !
« Reply #25 on: July 17, 2013, 03:05:30 pm »
Quote
Then any application using your DLL gets viral GPL license from eSpeak DLL, so unfortunately SAK is not for me.

I do not understand. I had contact with the autor.
If you see the code of espeak, there is a exe, a sapi and a dll version.
<snip a lot of explanations that are irrelevant>

eSpeak is licensed under the GPL. Any software creating a derivative work from this it must therefore also be GPL licensed.
(Note that there is some discussion about whether using a DLL means creating a derivative work. The guys who wrote the GPL say it does; others say it doesn't
http://stackoverflow.com/questions/1717494/using-gpl-v2-dll-in-application
)

However, if your code called the espeak executable with parameters, your code would definitely not need to be GPL-licensed.

It has no impact on the licence because licence do not specify that a certain compiler must be used.
This has nothing to do with which compiler was used.
Want quicker answers to your questions? Read http://wiki.lazarus.freepascal.org/Lazarus_Faq#What_is_the_correct_way_to_ask_questions_in_the_forum.3F

Open source including papertiger OCR/PDF scanning:
https://bitbucket.org/reiniero

Lazarus trunk+FPC trunk x86, Windows x64 unless otherwise specified

Fred vS

  • Hero Member
  • *****
  • Posts: 3629
    • StrumPract is the musicians best friend
Re: sak (Speaker Assistive Kit) is here !
« Reply #26 on: July 17, 2013, 03:05:59 pm »
@ Avra : here mail between the author and i.

Quote
Hello.
 
Excuse me to ask that with PM but I m desperate...
 
I have developp a open-source assistive kit for Pascal (fpc,
Lazarus, Delphi). It works like a charm in Linux using
espeak and portaudio (i have translated the espeak.h into
pascal espeak.pas).
 
Now i want to port the code for windows and have try to
compile espeak.dll (using portaudio19) with visual studio
2012 and mingw but without luck.
 
So i ask you if you know where i can download the compiled
espeak.dll (not the espeak_sapi.dll) to use espeak with
portaudio19 in Windows.
 
Many, many thanks.

Answer :

Quote
I don't know.  I have not made a Windows DLL for eSpeak which uses
portaudio.
 
The Windows version of espeakedit is linked to a static portaudio
library.  This is the file:  "PAStaticWMME.lib"  which is the in eSpeak
source download, in the directory:
platforms/windows/espeakedit.
 
I think I had some problem when I tried using portaudio.dll, but it was
a long time ago and I can't remember what was the problem.  So i used
PAStaticWMME.lib  instead.
 

My answer :

Quote
Hello Jonhathan.
Many, many, many thanks for answer. ;-)

> The Windows version of espeakedit is linked to a static portaudio
> library. This is the file: "PAStaticWMME.lib" which is the in eSpeak
> source download, in the directory:
> platforms/windows/espeakedit.

Yep, i have try to compile with PAStaticWMME.lib but it does not compile.
Same error messages :

unresolved external symbol _Pa_Initialize referenced in function "int __cdecl WavegenInitSound(void)" (?WavegenInitSound@@YAHXZ)

Also i have the .lib version of dynamic portaudio.dll but same error messages.

Sadly, i do not speak C (only few words !), it seems that reference to portaudio is not found.

I have translated the espeak_lib.h into pascal (for fpc, lazarus and delphi users). See in attachment, it could be interesting for other espeak users. .

eSpeak works perfectly on Unix system combined with portaudio.

I use portaudio.dll with great success in Windows (combined with mpg123.dll and sndFile.dll).
In Windows I do not want to use sapi.dll because the assistive-toolkit must be accessible for every windows system, even without sapi.dll installed.

Im busy to do free-pascal compiler total assistive for blind people.
Pascal language is more easy to understand and it is a good language to do "assistive" compatible.
The kit works good in Linux with fpc, lazarus and fpgui.

The kit uses the marvellous espeak library ( only 1 mega with espeak-data ), so every application can have his own assistive access.
With your espeak lib, users dont have to install orca.

I want to do the same thing with Windows.
So the kit gonna be compatible for Delphi to.
But for that i need the espeak-portaudio.dll.

> I think I had some problem when I tried using portaudio.dll, but it was
> a long time ago and I can't remember what was the problem. So i used
> PAStaticWMME.lib instead.

What windows compiler do you use ?
Even with static PAStaticWMME.lib, i cannot compile.

Many thanks and a big whouaw for magic eSpeak.

Answer of author :
Quote
On 27 May, Fred van Stappen <fiens@hotmail.com> wrote:
 
> unresolved external symbol _Pa_Initialize referenced in function "int
> __cdecl WavegenInitSound(void)" (?WavegenInitSound@@YAHXZ)
 
> Even with static PAStaticWMME.lib, i cannot compile.
 
I don't know what is the cause of the problem.  It seems that it can't
find the portaudio library.
 
When I compile espeskedit, the file PAStatucWMME.lib is in the same
folder as the project file "espeakedit.dsp".
 
> What windows compiler do you use ?
 
I use the old Windows C++ 6.0.

My last answer :

Quote
Hello Jonathan.
After a hard battle, finaly i get it... ;-)

I have to compile first portaudio19 with vs11 then espeak with that portaudio.lib, some modifs and it works...

Tested on XP and Win 7, espeak.dll is working perfectly with Portaudio19.

In attachment, your espeak.dll (in /lib), a simple example to test it and in /msVS the project files for compiling espeak_portaudio.dll with Ms Visual Studio 11.

Many, many thanks for your fabulous creation.
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Fred vS

  • Hero Member
  • *****
  • Posts: 3629
    • StrumPract is the musicians best friend
Re: sak (Speaker Assistive Kit) is here !
« Reply #27 on: July 17, 2013, 03:13:43 pm »
Quote
If your code e.g. called the espeak executable with parameters, your code would not need to be GPL-licensed.

OK, but what about PortAudio static lib who is included as resource into espeak.exe ?
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

BigChimp

  • Hero Member
  • *****
  • Posts: 5740
  • Add to the wiki - it's free ;)
    • FPCUp, PaperTiger scanning and other open source projects
Re: sak (Speaker Assistive Kit) is here !
« Reply #28 on: July 17, 2013, 04:10:56 pm »
If the portaudio license is not compatible with the GPL, you're not supposed to use it (you'd be in violation of the portaudio license - linking portaudio statically to espeak forces the GPL on portaudio as well).

If it is compatible, no problem.

Was this what you wanted to know? Your question seems open for multiple interpretations.
Want quicker answers to your questions? Read http://wiki.lazarus.freepascal.org/Lazarus_Faq#What_is_the_correct_way_to_ask_questions_in_the_forum.3F

Open source including papertiger OCR/PDF scanning:
https://bitbucket.org/reiniero

Lazarus trunk+FPC trunk x86, Windows x64 unless otherwise specified

Fred vS

  • Hero Member
  • *****
  • Posts: 3629
    • StrumPract is the musicians best friend
Re: sak (Speaker Assistive Kit) is here !
« Reply #29 on: July 17, 2013, 04:19:26 pm »
Quote
Was this what you wanted to know? Your question seems open for multiple interpretations.

Im a little confused after Avra remark.

I do not understand why the licence would differ if you use espeak.exe with parameters instead of espeak.dll via espeak.pas.

Also it seems to my that it is more fair to use espeak.dll with portaudio.dll than only espeak.exe (with portaudio in ressource).

To do it clear, i have sent a mail to author asking if there is a difference in licence of using espeak.exe vs espeak.dll.

When i have answer, gonna give it here.
 
« Last Edit: July 17, 2013, 04:25:14 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

 

TinyPortal © 2005-2018