elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Reproducir Ñ con sapi.voice
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Reproducir Ñ con sapi.voice  (Leído 5,961 veces)
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Reproducir Ñ con sapi.voice
« en: 27 Abril 2019, 20:55 pm »

que tal chavales pues tengo lo siguiente

Código
  1. Dim message, sapi
  2. message="niño algo con ñ"
  3. Set sapi=CreateObject("sapi.spvoice")
  4. sapi.Speak message
  5.  

Necesito reproducir las ñ, pero no lo logro  :-\


En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
FJDA


Desconectado Desconectado

Mensajes: 321


Ver Perfil
Re: Reproducir Ñ con sapi.voice
« Respuesta #1 en: 28 Abril 2019, 20:26 pm »

Código
  1.        Dim message, sapi
  2.        message = "el ninio no sabe lo que es un monio en la cabeza"
  3.  
  4.        sapi = CreateObject("sapi.spvoice")
  5.        sapi.Speak(message)




« Última modificación: 28 Abril 2019, 20:29 pm por FJDA » En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Reproducir Ñ con sapi.voice
« Respuesta #2 en: 28 Abril 2019, 20:28 pm »

Código
  1.        Dim message, sapi
  2.        message = "el ninio no sabe lo que es un monio en la cabeza"
  3.  
  4.        sapi = CreateObject("sapi.spvoice")
  5.        sapi.Speak(message)

gracias dog, voy a probar, pero creo que habia probado algo parecido sin resultado. te aviso.
En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
FJDA


Desconectado Desconectado

Mensajes: 321


Ver Perfil
Re: Reproducir Ñ con sapi.voice
« Respuesta #3 en: 28 Abril 2019, 20:29 pm »

gracias dog, voy a probar, pero creo que habia probado algo parecido sin resultado. te aviso.

más lento

Código
  1.   Dim message, sapi
  2.        message = "el ninio no sabe lo que es un monio en la cabeza"
  3.        sapi = CreateObject("sapi.spvoice")
  4.        sapi.rate = -5
  5.        sapi.Speak(message)
  6.  
En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Reproducir Ñ con sapi.voice
« Respuesta #4 en: 28 Abril 2019, 20:30 pm »

más lento

Código
  1.   Dim message, sapi
  2.        message = "el ninio no sabe lo que es un monio en la cabeza"
  3.        sapi = CreateObject("sapi.spvoice")
  4.        sapi.rate = -5
  5.        sapi.Speak(message)
  6.  

voy directo a abrir la vm ya va.
En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
FJDA


Desconectado Desconectado

Mensajes: 321


Ver Perfil
Re: Reproducir Ñ con sapi.voice
« Respuesta #5 en: 28 Abril 2019, 20:32 pm »

voy directo a abrir la vm ya va.

ops esto es perfecto ahora si que si  ;)

Lo pongo de las dos maneras para veas la diferencia
Código
  1.        Dim message, message2, sapi
  2.  
  3.        message = "el ninio no sabe lo que es un monio en la cabeza"
  4.        message2 = "el ninyo no sabe lo que es un monyo en la cabeza"
  5.        sapi = CreateObject("sapi.spvoice")
  6.        sapi.rate = -5
  7.        sapi.Speak(message)
  8.        sapi.Speak(message2)
  9.  



El código me he fijado que has puesto sapi.Speak message sin el paréntesis, entiendo lo pones como para vbscript y no para NET.

Es que para NET tienes la clase  SpeechSynthesizer
https://docs.microsoft.com/es-es/dotnet/api/system.speech.synthesis.speechsynthesizer.volume?view=netframework-4.8


Tienes que agregar referencia de  System.Speech y luego importar esto

Código
  1. Imports System.Speech.Synthesis
  2.  

En C#
Código
  1. using System.Speech.Synthesis;
  2.  
« Última modificación: 28 Abril 2019, 20:59 pm por FJDA » En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Reproducir Ñ con sapi.voice
« Respuesta #6 en: 28 Abril 2019, 21:02 pm »

ops esto es perfecto ahora si que si  ;)

Lo pongo de las dos maneras para veas la diferencia
Código
  1.        Dim message, message2, sapi
  2.  
  3.        message = "el ninio no sabe lo que es un monio en la cabeza"
  4.        message2 = "el ninyo no sabe lo que es un monyo en la cabeza"
  5.        sapi = CreateObject("sapi.spvoice")
  6.        sapi.rate = -5
  7.        sapi.Speak(message)
  8.        sapi.Speak(message2)
  9.  



El código me he fijado que has puesto sapi.Speak message sin el paréntesis, entiendo lo pones como para vbscript y no para NET.

Es que para NET tienes la clase  SpeechSynthesizer
https://docs.microsoft.com/es-es/dotnet/api/system.speech.synthesis.speechsynthesizer.volume?view=netframework-4.8


Tienes que agregar referencia de  System.Speech y luego importar esto

Código
  1. Imports System.Speech.Synthesis
  2.  

En C#
Código
  1. using System.Speech.Synthesis;
  2.  

si tal cual era para vbs , pero esta funcionando dog

Pues mi idea era reproducir un sonido desde java, o sea, escribo ese fichero en el directorio temporal con java, y lo  abro desde java, o sea, lo reproduzco.
En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
FJDA


Desconectado Desconectado

Mensajes: 321


Ver Perfil
Re: Reproducir Ñ con sapi.voice
« Respuesta #7 en: 28 Abril 2019, 21:11 pm »

pues si te vale para "que" dice "kiu" porque en inglés la u la pronuncia iu

En su lugar pones "[k]e"  (sin los corchetes)
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: Reproducir Ñ con sapi.voice
« Respuesta #8 en: 28 Abril 2019, 21:11 pm »

No entiendo cual es el problema que teneis, ya que en mi caso y sistema operativo (Windows 10) las dos voces SAPI que tengo instaladas, es decir, Español de España (Helena) e Inglés de EEUU (Zira) reproducen perfectamente la entonación de la letra "Ñ".

De todas formas, el código que habeis puesto, para VisualBasicScript bien, pero en .NET deberiais utilizar la clase System.Speech.Synthesis.SpeechSynthesizer...

Código
  1. Dim synth As New SpeechSynthesizer()

Pongo varios ejemplos útiles:

Seleccionar voz sintética femenina en Español de España.
Código
  1. synth.SelectVoice("Microsoft Helena Desktop")
  2. synth.Rate = -5
  3. synth.Speak("¡Viva España!")

Seleccionar voz sintética femenina en Inglés de EEUU.
Código
  1. synth.SelectVoice("Microsoft Zira Desktop")
  2. synth.Rate = -5
  3. synth.Speak("¡Viva España!")
( en masculino creo que se llamaba "Microsoft David Desktop" )

Seleccionar voz sintética por género, año y localización.
Código
  1. synth.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult, 0, New CultureInfo("es-ES"))
  2. synth.Rate = -5
  3. synth.Speak("¡Viva España!")

Iterar todas las voces instaladas en el sistema.
Código
  1. For Each installedVoice As InstalledVoice In synth.GetInstalledVoices()
  2.  
  3.    Dim voiceInfo As VoiceInfo = installedVoice.VoiceInfo
  4.  
  5.    Dim sb As New StringBuilder()
  6.    sb.AppendFormat("{0}:{1}, {2}:{3}, {4}:{5}, {6}:{7}, {8}:{9}",
  7.                    NameOf(voiceInfo.Name), voiceInfo.Name,
  8.                    NameOf(voiceInfo.Culture), voiceInfo.Culture.Name,
  9.                    NameOf(voiceInfo.Gender), voiceInfo.Gender.ToString(),
  10.                    NameOf(voiceInfo.Age), voiceInfo.Age.ToString(),
  11.                    NameOf(installedVoice.Enabled), installedVoice.Enabled)
  12.    Console.WriteLine(sb.ToString())
  13.  
  14.    If (installedVoice.Enabled) Then
  15.        synth.SelectVoice(voiceInfo.Name)
  16.        synth.Rate = -5
  17.        synth.Speak("¡Viva España!")
  18.    End If
  19.  
  20. Next

Saludos.
« Última modificación: 28 Abril 2019, 21:25 pm por Eleкtro » En línea

FJDA


Desconectado Desconectado

Mensajes: 321


Ver Perfil
Re: Reproducir Ñ con sapi.voice
« Respuesta #9 en: 28 Abril 2019, 21:14 pm »

No entiendo cual es el problema que teneis, ya que en mi caso y sistema operativo (Windows 10) las dos voces SAPI que tengo instaladas, es decir, Español de España (Helena) e Iglés de EEUU (Zira) reproducen perfectamente la entonación de la letra "Ñ".

De todas formas, el código que habeis puesto, para VisualBasicScript bien, pero en .NET deberiais utilizar la clase System.Speech.Synthesis.SpeechSynthesizer...

Código
  1. Dim synth As New SpeechSynthesizer()

Pongo varios ejemplos útiles:

Seleccionar voz sintética femenina en Español de España.
Código
  1. synth.SelectVoice("Microsoft Helena Desktop")
  2. synth.Rate = -5
  3. synth.Speak("¡Viva España!")

Seleccionar voz sintética femenina en Inglés de EEUU.
Código
  1. synth.SelectVoice("Microsoft Zira Desktop")
  2. synth.Rate = -5
  3. synth.Speak("¡Viva España!")

Seleccionar voz sintética por género, año y localización.
Código
  1. synth.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult, 0, New CultureInfo("es-ES"))
  2. synth.Rate = -5
  3. synth.Speak("¡Viva España!")

Iterar todas las voces instaladas en el sistema.
Código
  1. For Each installedVoice As InstalledVoice In synth.GetInstalledVoices()
  2.  
  3.    Dim voiceInfo As VoiceInfo = installedVoice.VoiceInfo
  4.  
  5.    Dim sb As New StringBuilder()
  6.    sb.AppendFormat("{0}:{1}, {2}:{3}, {4}:{5}, {6}:{7}, {8}:{9}",
  7.                    NameOf(voiceInfo.Culture), voiceInfo.Culture.Name,
  8.                    NameOf(voiceInfo.Gender), voiceInfo.Gender.ToString(),
  9.                    NameOf(voiceInfo.Age), voiceInfo.Age.ToString(),
  10.                    NameOf(installedVoice.Enabled), installedVoice.Enabled)
  11.    Console.WriteLine(sb.ToString())
  12.  
  13.    If (installedVoice.Enabled) Then
  14.        synth.SelectVoice(voiceInfo.Name)
  15.        synth.Rate = -5
  16.        synth.Speak("¡Viva España!")
  17.    End If
  18.  
  19. Next

Saludos.

En windows7 no lo pronuncia bien ni usando New System.Globalization.CultureInfo("es-ES") ya se lo digo yo, uso w7



parece que podría ser que fuese que pronuncie bien la Ñ dependiendo de si se tiene la voz adecuada instalada y bien configurada, independientemente de sistema operativo.
Luego el código posteado por electro funcionará o no si se tiene la voz seleccionada instalada, así esto no funciona si no está synth.SelectVoice("Microsoft Zira Desktop") synth.SelectVoice("Microsoft Helena Desktop")
tienes que tener a Zira Helena si no nada no funciona (Helena es para el español).
ver
https://es.switch-case.com/62941538

y si se usa vbs entonces es el que tenga el sistema por defecto


...

yo tengo "Microsoft Anna"
En el registro de windows se puede ver las voces
HKEY_CURRENT_USER\Software\Microsoft\Speech\Voices

en DefaultTokenId aparece la siguiente voz
Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MS-Anna-1033-20-DSK

Código
  1.        Dim synth As New SpeechSynthesizer()
  2.        synth.SelectVoice("Microsoft Anna")
  3.        synth.Rate = -5
  4.        synth.Speak("¡Viva España!")
  5.  


Desde panel de control

Panel de control   Reconocimiento de voz\Texto de voz ahí aparecen las voces e idiomas disponibles
« Última modificación: 28 Abril 2019, 21:58 pm por FJDA » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
rbc voice tweaker
Multimedia
theloop 1 2,050 Último mensaje 4 Junio 2004, 11:01 am
por Songoku
se me malogro el sapi 5 de windows xpsp3 ahoro como hago la voz de anonymous ?
Windows
Weeken 7 4,258 Último mensaje 30 Octubre 2012, 08:43 am
por Eleкtro
[Ayuda] SAPI y reconocimiento de voz
.NET (C#, VB.NET, ASP)
TMarmol 3 2,648 Último mensaje 4 Diciembre 2013, 00:36 am
por pedrosakki
SAPI de Windows para Java
Java
Macarena 0 1,390 Último mensaje 29 Agosto 2014, 16:43 pm
por Macarena
ccna voice
Redes
cristianetmx 1 1,804 Último mensaje 25 Febrero 2015, 18:24 pm
por suranderus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines