![]() |
|
|||||||
| Home | Register | FAQ | Members List | Search | Today's Posts | Mark Forums Read |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|||
|
Saludos a todos, soy relativamente nuevo en este foro y he estado leyendo threads que me están resultando muy interesantes y educativos en mis primeros pasitos con Basic4PPC.
Sobre todo me he interesado por los mensajes sobre librerías TTS para que hable la "bicha" He probado la librería FLITE (que habla en inglés) y se me ha ocurrido probar otra que habla supuestamente en español, dentro del diccionario Lingvosoft Talking Dicc English Spanish hay una librería de TTS español llamada TTS_SPA.DLL (supongo que no será delito cacharrear sin ánimo de lucro con librerías de terceros) y he preparado un enlace mediante TTSWRAP.DLL para que se pueda invocar desde Basic4PPC. Bueno hasta aquí bien, pero solo consigo que pronuncie la primera letra del texto deseado. No sé si alguien sabe como resolver el problema. ¿Como conseguir que pronuncie la frase completa? Adjunto la librería y el enlazador por si quereis probarlo. Felices Pascuas |
|
|||
|
La librería posteada antes solo es para la PDA.
Ahora posteo lo mismo pero con una librería TTS_SPA.DLL de versión windows. Curiosamente en este caso pronuncia toda la frase que se teclee. Claro compilándolo para Desktop y ejecutándolo en el PC. Saludos, |
|
|||
|
English:
First one, thanks for your answer Agraham. I supose that the string conversion from UTF16 to ASCII encode must be done into the original dll (in my case in TTS_SPA.DLL), so I can't continue (the DLL is from Lingvosoft and I have no permission for dissassemble) Or is it possible make it in C#, into the wrapp dll? Merry Christmas ![]() ------ Now spanish: Lo primero, gracias por tu respuesta Agraham. Supongo que la conversión de la cadena de la codificación UTF16 a la de ASCII debe realizarse dentro de la librería original (en mi caso TTS_SPA.DLL), en ese caso no puedo continuar (la librería es propiedad de Lingvosoft y no tengo permiso para desensamblarla). ¿O es posible que la conversión pueda hacerse desde C#, dentro del enlazador wrap? Feliz Navidad. ![]() |
|
||||
|
You could try encoding the string into a byte array as UTF-8, stick a 0 after the last byte of the string to terminate it and pass the byte array.
Code:
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
// Create a UTF-8 encoding.
UTF8Encoding utf8 = new UTF8Encoding();
// A Unicode string with two characters outside an 8-bit code range.
String unicodeString =
"This unicode string contains two characters " +
"with codes outside an 8-bit code range, " +
"Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Encode the string.
Byte[] encodedBytes = utf8.GetBytes(unicodeString);
Console.WriteLine();
Console.WriteLine("Encoded bytes:");
foreach (Byte b in encodedBytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
// Decode bytes back to string.
// Notice Pi and Sigma characters are still present.
String decodedString = utf8.GetString(encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
}
}
|
|
|||
|
Gracias a la pista que remite Agraham, he enlazado la librería de voz y ahora parece que funciona bien. Pronuncia toda la frase, reconoce vocales acentuadas, la ñ y demás caracteres españoles.
El código que he incluido en el enlazador "wrap" TTSwrap.dll es el siguiente: ------------------------------------------------------------------------ Thanks to Agraham for his trail, I have wrapped the TTS library and now, it seems to speak all the sentence, it admits accentuated vocal, the ñ character and others spanish symbols. The code included for the class in the ttswrap.dll is the follow: ----------------------------------------------------------------------- namespace Ttswrap { using System; using System.Runtime.InteropServices; public class esp : IDisposable { public esp() { Init_TTS(); } [DllImport("TTS_spa.dll")] private static extern void DeInit_TTS(); public void Dispose() { DeInit_TTS(); } [DllImport("TTS_spa.dll")] private static extern void Init_TTS(); [DllImport("TTS_spa.dll")] private static extern int Say_TTS(byte[] texto); public int Voz(string texto) { return Say_TTS(System.Text.UnicodeEncoding.Default.GetByt es(texto)); } } } ------------------------------------------------------------------------- Happy New Year |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Is there any thing like Visual Basic "Tabbed dialog control" in Basic4ppc? | mozaharul | Questions & Help Needed | 6 | 03-23-2008 11:07 AM |
| Image Button kommt nicht wieder "hoch" | troll | German Forum | 3 | 02-22-2008 09:03 AM |
| calling the device's "Programs" or "settings" screens | HarleyM | Questions & Help Needed | 0 | 12-05-2007 02:59 AM |
| Avoid the "optional resource assembly cannot be found" | Erel | Code Samples & Tips | 1 | 07-12-2007 10:24 AM |
| simplest "clikable label" workaroud | Cableguy | Code Samples & Tips | 0 | 05-31-2007 12:35 PM |