www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - TTS Synthesis: D and vibe.d in Action

reply Chris <wendlec tcd.ie> writes:
Hi,

Just to inform you that we successfully use D and vibe.d for two 
things:

1. an NVDA[1] screen reader plugin:

http://www.abair.ie/nvda/

It is still version 0.6 beta but it is already being used by 
visually impaired people.

2. a web version of the text-to-speech synthesizer that is now 
used on the website of the Department of Arts, Heritage and the 
Gaeltacht in Ireland:

http://www.ahg.gov.ie/ga/ [2]

The web service is based on vibe.d and will be extended for more 
use cases (for example on the fly synthesis in the "cloud"). It 
is also still beta. The system works quite fast (the delay is due 
to a timeout in the JS, i.e. it doesn't send the request 
immediately - which will be optional in future versions).

[1] http://www.nvaccess.org/
[2] It's the green bubble that says "abair.ie" at the bottom of 
the page, once you click on it you'll see some controls, press on 
the bubble that says "a" to activate it. It will read out 
whatever is under the cursor (after a short delay which is in the 
JS).
Apr 12 2016
next sibling parent reply jamonahn <jamonahn gmail.com> writes:
On Tuesday, 12 April 2016 at 10:22:03 UTC, Chris wrote:
...
 http://www.ahg.gov.ie/ga/ [2]
Just some confusion on my part -- this is the link to try it out. Congrats! What a wonderful inspiration!
Apr 12 2016
parent Chris <wendlec tcd.ie> writes:
On Tuesday, 12 April 2016 at 14:37:52 UTC, jamonahn wrote:
 On Tuesday, 12 April 2016 at 10:22:03 UTC, Chris wrote:
 ...
 http://www.ahg.gov.ie/ga/ [2]
Just some confusion on my part -- this is the link to try it out. Congrats! What a wonderful inspiration!
Thanks. I hope that more people and organizations will use it down the road.
Apr 12 2016
prev sibling next sibling parent reply wobbles <grogan.colin gmail.com> writes:
On Tuesday, 12 April 2016 at 10:22:03 UTC, Chris wrote:
 Hi,

 Just to inform you that we successfully use D and vibe.d for 
 two things:

 [...]
Great to see some fellow Irish D users!
Apr 12 2016
parent Chris <wendlec tcd.ie> writes:
On Tuesday, 12 April 2016 at 17:41:32 UTC, wobbles wrote:
 On Tuesday, 12 April 2016 at 10:22:03 UTC, Chris wrote:
 Hi,

 Just to inform you that we successfully use D and vibe.d for 
 two things:

 [...]
Great to see some fellow Irish D users!
Good to know I'm not the only one! I was already wondering how many people in Ireland actually use D! :-) It's either considered "exotic" or "never heard of".
Apr 12 2016
prev sibling parent reply Andre Polykanine via Digitalmars-d-announce writes:
Hello Chris,

CvDda> Just to inform you that we successfully use D and vibe.d for two
CvDda> things:

This is just overwhelming!
How do you make bindings to NVDA API which is in Python?
I'm  not  an  NVDA  user (I'm using JAWS, if it matters), but I'm still
very interested in the technology.


Andre.
Apr 13 2016
parent reply Chris <wendlec tcd.ie> writes:
On Wednesday, 13 April 2016 at 19:09:46 UTC, Andre Polykanine 
wrote:
 Hello Chris,

 CvDda> Just to inform you that we successfully use D and vibe.d 
 for two CvDda> things:

 This is just overwhelming!
 How do you make bindings to NVDA API which is in Python?
 I'm  not  an  NVDA  user (I'm using JAWS, if it matters), but 
 I'm still
 very interested in the technology.


 Andre.
Hi Andre, What is CvDda>? There are loads of different results in my search engine. To answer your question: in Python you can load DLLs via Python's ctypes. You just load the DLL via `CDLL()` or `cdll.LoadLibrary()`. It's relatively easy to make a Windows DLL in D. To make it accessible for Python's C-types, just expose your functions like so extern (C) { export void myFunction(){} } Of course, any arguments (at least on Windows) or return types should be C-style, i.e. `const char*` instead of `string`. To Python it all looks like C, it doesn't know about D. I've seen a plug-in written in Scheme and it is also loaded via Python's `CDLL()`. To bind a Python function to your DLL just do something like this (assuming you're in a class): // Load self.myDLL = CDLL("path/to/dll") If your function is void, just call it using // call void function in DLL self.myDLL.myFunciton(); If it returns something, you should first define the return value: // assign return type to function in Python self.myDLL.getError.restype = c_char_p To pass arguments, it's best to convert Python to C-types like so: // pass argument as C-type self.myDLL.myFunction(c_char_p("text")) It's all in the Python docs at https://docs.python.org/2/library/ctypes.html.
Apr 14 2016
parent reply =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
On 04/14/2016 03:57 AM, Chris wrote:

 What is CvDda>?
Abbreviation of your name by Andre's email program: "Chris via Digitalmars-d-announce". :) Ali
Apr 14 2016
parent Chris <wendlec tcd.ie> writes:
On Thursday, 14 April 2016 at 17:55:40 UTC, Ali Çehreli wrote:
 On 04/14/2016 03:57 AM, Chris wrote:

 What is CvDda>?
Abbreviation of your name by Andre's email program: "Chris via Digitalmars-d-announce". :) Ali
Oh deary me! That was a tough one for me :) Type CvDda into your search engine, the results are confusing.
Apr 15 2016