speechd-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

French language with Speech Dispatcher, Speechd-el and DECtalk software


From: Gilles Casse
Subject: French language with Speech Dispatcher, Speechd-el and DECtalk software 5.0
Date: Mon Sep 4 09:59:47 2006

Hello Hynek,

I was writing a mail about 0.5 rc1 when I saw that rc2 is now available :-). 
So, the 0.5 rc2 release has been installed to test the french characters using 
the dtk-generic module for DECtalk 5.0. 

I am using emacs in console mode and iso 8859-1. 

When the c cedilla is typed under emacs, the dtk-generic processes crash. 
A sample from debug-dtk-generic is copied at the end of this post [1]. 

In generic.c, g_convert_with_fallback expects a UTF-8 character but a single 
byte, e.g the c cedilla character, is received. 
Then g_convert_with_fallback returns NULL. 

I have added a few lines for the test in generic.c which also avoid the crash 
[2]. I am aware that this is not a solution. 
The related debug-dtk-generic file using thes lines is also copied at the end 
[3]. 

Cheers,

Gilles


***
[1] Before any patch: the n letter is typed, then the c cedilla character:

 Tue Jul 13 22:12:08 2004 [603330]: Waiting for child... 
 Tue Jul 13 22:12:08 2004 [603437]: child terminated -: status:0 signal?:1 
signal number:9. 

 Tue Jul 13 22:12:08 2004 [604020]: speak()

 Tue Jul 13 22:12:08 2004 [604112]: Recoding from UTF-8 to iso-8859-1... 
 Tue Jul 13 22:12:08 2004 [604251]: in stripping ssml: |a|
 Tue Jul 13 22:12:08 2004 [604340]: Requested data: |a|

 Tue Jul 13 22:12:08 2004 [604463]: Semaphore on

 Tue Jul 13 22:12:08 2004 [605114]: Entering parent process, closing pipes
 Tue Jul 13 22:12:08 2004 [605289]:   Looping... 

 Tue Jul 13 22:12:08 2004 [605380]: Returned 1 bytes from get_part

 Tue Jul 13 22:12:08 2004 [605466]: Sending buf to child:|a| 1

 Tue Jul 13 22:12:08 2004 [605553]: going to write 1 bytes
 Tue Jul 13 22:12:08 2004 [605643]: written 1 bytes
 Tue Jul 13 22:12:08 2004 [605728]: Waiting for response from child... 

 Tue Jul 13 22:12:08 2004 [605855]: Generic: leaving write() normaly


 Tue Jul 13 22:12:08 2004 [606581]: Starting child... 

 Tue Jul 13 22:12:08 2004 [606688]: UnBlocking user signal
 Tue Jul 13 22:12:08 2004 [606806]: Entering child loop

 Tue Jul 13 22:12:08 2004 [606900]: read 1 bytes in child
 Tue Jul 13 22:12:08 2004 [606986]: text read is: |a|

 Tue Jul 13 22:12:08 2004 [607111]: child: escaped text is |a|
 Tue Jul 13 22:12:08 2004 [607236]: child: synth command = |echo "[:np][:ra 
338][:dv ap 225]" >/tmp/dtk-speak.txt && echo "a" | fmt >>/tmp/dtk-speak.txt && 
say -fi /tmp/dtk-speak.txt|
 Tue Jul 13 22:12:08 2004 [607325]: Speaking in child... 
 Tue Jul 13 22:12:08 2004 [607409]: Blocking user signal
 Tue Jul 13 22:12:09 2004 [109097]: generic: stop()

 Tue Jul 13 22:12:09 2004 [109225]: generic: stopping process group pid 23488

 Tue Jul 13 22:12:09 2004 [138564]: generic: stop()

 Tue Jul 13 22:12:09 2004 [138693]: generic: stopping process group pid 23488

 Tue Jul 13 22:12:09 2004 [140016]: parent: Read bytes 0, child stopped

 Tue Jul 13 22:12:09 2004 [140117]: End of data in parent, closing pipes
 Tue Jul 13 22:12:09 2004 [140224]: Waiting for child... 
 Tue Jul 13 22:12:09 2004 [140330]: child terminated -: status:0 signal?:1 
signal number:9. 

 Tue Jul 13 22:12:09 2004 [140883]: speak()



***
[2] In generic.c, function module_speak, around line 100, a few lines have been 
added for the test (at the end of the following sample)  


    if (generic_msg_language->charset != NULL){
        DBG("Recoding from UTF-8 to %s...", generic_msg_language->charset);
        tmp = 
            (char*) g_convert_with_fallback(data, bytes, 
generic_msg_language->charset,
                                            "UTF-8", GenericRecodeFallback, 
NULL, NULL,
                                            NULL);

    }else{
        DBG("Warning: Recoding to language default iso, might not be ok...");
        tmp = module_recode_to_iso(data, bytes, generic_msg_language->name,
                                                GenericRecodeFallback);
    }


    //// (GC) Added for the test
    if (tmp==NULL)
      {
        DBG("tmp=null; data=%s, bytes=%d\n", data, bytes);
        *generic_message = module_strip_ssml(data);
      }
    else
      {
    ////
    // Original code
        *generic_message = module_strip_ssml(tmp);
        xfree(tmp);
    //
      }

    module_strip_punctuation_some(*generic_message, GenericStripPunctChars);
 


***
[3] The n letter is typed, then the c cedilla character, the a charcater
 Tue Jul 13 23:06:02 2004 [117713]: generic: stop()

 Tue Jul 13 23:06:02 2004 [117842]: generic: stopping process group pid 30909

 Tue Jul 13 23:06:02 2004 [120428]: parent: Read bytes 0, child stopped

 Tue Jul 13 23:06:02 2004 [120530]: End of data in parent, closing pipes
 Tue Jul 13 23:06:02 2004 [120637]: Waiting for child...
 Tue Jul 13 23:06:02 2004 [120747]: child terminated -: status:0 signal?:1 
signal number:9.

 Tue Jul 13 23:06:02 2004 [147927]: speak()

 Tue Jul 13 23:06:02 2004 [148049]: Recoding from UTF-8 to iso-8859-1... 
 Tue Jul 13 23:06:02 2004 [148200]: in stripping ssml: |n|
 Tue Jul 13 23:06:02 2004 [148290]: Requested data: |n|

 Tue Jul 13 23:06:02 2004 [148425]: Semaphore on

 Tue Jul 13 23:06:02 2004 [149094]: Entering parent process, closing pipes
 Tue Jul 13 23:06:02 2004 [149269]:   Looping... 

 Tue Jul 13 23:06:02 2004 [149359]: Returned 1 bytes from get_part

 Tue Jul 13 23:06:02 2004 [149445]: Sending buf to child:|n| 1

 Tue Jul 13 23:06:02 2004 [149532]: going to write 1 bytes
 Tue Jul 13 23:06:02 2004 [149622]: written 1 bytes
 Tue Jul 13 23:06:02 2004 [149708]: Waiting for response from child... 

 Tue Jul 13 23:06:02 2004 [149833]: Generic: leaving write() normaly


 Tue Jul 13 23:06:02 2004 [150520]: Starting child... 

 Tue Jul 13 23:06:02 2004 [150624]: UnBlocking user signal
 Tue Jul 13 23:06:02 2004 [150742]: Entering child loop

 Tue Jul 13 23:06:02 2004 [150961]: read 1 bytes in child
 Tue Jul 13 23:06:02 2004 [151050]: text read is: |n|

 Tue Jul 13 23:06:02 2004 [151175]: child: escaped text is |n|
 Tue Jul 13 23:06:02 2004 [151301]: child: synth command = |echo "[:np][:ra 
338][:dv ap 225]" >/tmp/dtk-speak.txt && echo "n" | fmt >>/tmp/dtk-speak.txt && 
say -fi /tmp/dtk-speak.txt|
 Tue Jul 13 23:06:02 2004 [151390]: Speaking in child... 
 Tue Jul 13 23:06:02 2004 [151474]: Blocking user signal
 Tue Jul 13 23:06:03 2004 [101965]: generic: stop()

 Tue Jul 13 23:06:03 2004 [102092]: generic: stopping process group pid 30921

 Tue Jul 13 23:06:03 2004 [104916]: parent: Read bytes 0, child stopped

 Tue Jul 13 23:06:03 2004 [105020]: End of data in parent, closing pipes
 Tue Jul 13 23:06:03 2004 [105127]: Waiting for child... 
 Tue Jul 13 23:06:03 2004 [105236]: child terminated -: status:0 signal?:1 
signal number:9.

 Tue Jul 13 23:06:03 2004 [132338]: speak()

 Tue Jul 13 23:06:03 2004 [132458]: Recoding from UTF-8 to iso-8859-1...
 Tue Jul 13 23:06:03 2004 [132810]: tmp=null; data=?, bytes=1

 Tue Jul 13 23:06:03 2004 [132905]: in stripping ssml: |?|
 Tue Jul 13 23:06:03 2004 [132992]: Requested data: |?|

 Tue Jul 13 23:06:03 2004 [133128]: Semaphore on

 Tue Jul 13 23:06:03 2004 [133796]: Entering parent process, closing pipes
 Tue Jul 13 23:06:03 2004 [133942]:   Looping... 

 Tue Jul 13 23:06:03 2004 [134029]: Returned 1 bytes from get_part

 Tue Jul 13 23:06:03 2004 [134114]: Sending buf to child:|?| 1

 Tue Jul 13 23:06:03 2004 [134201]: going to write 1 bytes
 Tue Jul 13 23:06:03 2004 [134292]: written 1 bytes
 Tue Jul 13 23:06:03 2004 [134378]: Waiting for response from child... 

 Tue Jul 13 23:06:03 2004 [134502]: Generic: leaving write() normaly


 Tue Jul 13 23:06:03 2004 [135165]: Starting child...

 Tue Jul 13 23:06:03 2004 [135271]: UnBlocking user signal
 Tue Jul 13 23:06:03 2004 [135389]: Entering child loop

 Tue Jul 13 23:06:03 2004 [135484]: read 1 bytes in child
 Tue Jul 13 23:06:03 2004 [135570]: text read is: |?|

 Tue Jul 13 23:06:03 2004 [135735]: child: escaped text is |?|
 Tue Jul 13 23:06:03 2004 [135865]: child: synth command = |echo "[:np][:ra 
338][:dv ap 225]" >/tmp/dtk-speak.txt && echo "?" | fmt >>/tmp/dtk-speak.txt && 
say -fi /tmp/dtk-speak.txt|
 Tue Jul 13 23:06:03 2004 [135954]: Speaking in child... 
 Tue Jul 13 23:06:03 2004 [136038]: Blocking user signal
 Tue Jul 13 23:06:03 2004 [984775]: Executed shell command returned with 0
 Tue Jul 13 23:06:03 2004 [984920]: UnBlocking user signal
 Tue Jul 13 23:06:03 2004 [985037]: child->parent: ok, send more data
 Tue Jul 13 23:06:03 2004 [985166]: Ok, received report to continue... 

 Tue Jul 13 23:06:03 2004 [985260]:   Looping... 

 Tue Jul 13 23:06:03 2004 [985345]: Returned -1 bytes from get_part

 Tue Jul 13 23:06:03 2004 [985430]: End of data in parent, closing pipes
 Tue Jul 13 23:06:03 2004 [985532]: read 0 bytes in child
 Tue Jul 13 23:06:03 2004 [985623]: child: Pipe closed, exiting, closing 
pipes.. 

 Tue Jul 13 23:06:03 2004 [985724]: Child ended... 

 Tue Jul 13 23:06:03 2004 [986518]: Waiting for child... 
 Tue Jul 13 23:06:03 2004 [986633]: child terminated -: status:1 signal?:0 
signal number:0. 

 Tue Jul 13 23:06:04 2004 [557069]: speak()

 Tue Jul 13 23:06:04 2004 [557201]: Recoding from UTF-8 to iso-8859-1... 
 Tue Jul 13 23:06:04 2004 [557347]: in stripping ssml: |a|
 Tue Jul 13 23:06:04 2004 [557438]: Requested data: |a|

 Tue Jul 13 23:06:04 2004 [557572]: Semaphore on

 Tue Jul 13 23:06:04 2004 [558235]: Entering parent process, closing pipes
 Tue Jul 13 23:06:04 2004 [558378]:   Looping...

 Tue Jul 13 23:06:04 2004 [558464]: Returned 1 bytes from get_part

 Tue Jul 13 23:06:04 2004 [558551]: Sending buf to child:|a| 1

 Tue Jul 13 23:06:04 2004 [558638]: going to write 1 bytes
 Tue Jul 13 23:06:04 2004 [558728]: written 1 bytes
 Tue Jul 13 23:06:04 2004 [558814]: Waiting for response from child... 

 Tue Jul 13 23:06:04 2004 [558938]: Generic: leaving write() normaly


 Tue Jul 13 23:06:04 2004 [588799]: Starting child... 

 Tue Jul 13 23:06:04 2004 [589042]: UnBlocking user signal
 Tue Jul 13 23:06:04 2004 [589164]: Entering child loop

 Tue Jul 13 23:06:04 2004 [589262]: read 1 bytes in child
 Tue Jul 13 23:06:04 2004 [589348]: text read is: |a|

 Tue Jul 13 23:06:04 2004 [589521]: child: escaped text is |a|
 Tue Jul 13 23:06:04 2004 [589650]: child: synth command = |echo "[:np][:ra 
338][:dv ap 225]" >/tmp/dtk-speak.txt && echo "a" | fmt >>/tmp/dtk-speak.txt && 
say -fi /tmp/dtk-speak.txt|
 Tue Jul 13 23:06:04 2004 [589739]: Speaking in child... 
 Tue Jul 13 23:06:04 2004 [589823]: Blocking user signal
 Tue Jul 13 23:06:05 2004 [744758]: Executed shell command returned with 0
 Tue Jul 13 23:06:05 2004 [744904]: UnBlocking user signal
 Tue Jul 13 23:06:05 2004 [745020]: child->parent: ok, send more data
 Tue Jul 13 23:06:05 2004 [745151]: Ok, received report to continue... 

 Tue Jul 13 23:06:05 2004 [745245]:   Looping... 

 Tue Jul 13 23:06:05 2004 [745331]: Returned -1 bytes from get_part

 Tue Jul 13 23:06:05 2004 [745417]: End of data in parent, closing pipes
 Tue Jul 13 23:06:05 2004 [745519]: read 0 bytes in child
 Tue Jul 13 23:06:05 2004 [745610]: child: Pipe closed, exiting, closing 
pipes.. 

 Tue Jul 13 23:06:05 2004 [745712]: Child ended... 

 Tue Jul 13 23:06:05 2004 [746502]: Waiting for child... 
 Tue Jul 13 23:06:05 2004 [746618]: child terminated -: status:1 signal?:0 
signal number:0. 



-- 
Oralux http://oralux.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]