Autor
|
Tema: Reproducir Ñ con sapi.voice (Leído 6,668 veces)
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
que tal chavales pues tengo lo siguienteDim message, sapi message="niño algo con ñ" Set sapi=CreateObject("sapi.spvoice") sapi.Speak message
Necesito reproducir las ñ, pero no lo logro
|
|
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
FJDA
Desconectado
Mensajes: 322
|
Dim message, sapi message = "el ninio no sabe lo que es un monio en la cabeza" sapi = CreateObject("sapi.spvoice") sapi.Speak(message)
|
|
« Última modificación: 28 Abril 2019, 20:29 pm por FJDA »
|
En línea
|
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
Dim message, sapi message = "el ninio no sabe lo que es un monio en la cabeza" sapi = CreateObject("sapi.spvoice") sapi.Speak(message)
gracias dog, voy a probar, pero creo que habia probado algo parecido sin resultado. te aviso.
|
|
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
FJDA
Desconectado
Mensajes: 322
|
gracias dog, voy a probar, pero creo que habia probado algo parecido sin resultado. te aviso.
más lento Dim message, sapi message = "el ninio no sabe lo que es un monio en la cabeza" sapi = CreateObject("sapi.spvoice") sapi.rate = -5 sapi.Speak(message)
|
|
|
En línea
|
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
más lento Dim message, sapi message = "el ninio no sabe lo que es un monio en la cabeza" sapi = CreateObject("sapi.spvoice") sapi.rate = -5 sapi.Speak(message)
voy directo a abrir la vm ya va.
|
|
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
FJDA
Desconectado
Mensajes: 322
|
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 Dim message, message2, sapi message = "el ninio no sabe lo que es un monio en la cabeza" message2 = "el ninyo no sabe lo que es un monyo en la cabeza" sapi = CreateObject("sapi.spvoice") sapi.rate = -5 sapi.Speak(message) sapi.Speak(message2)
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.8Tienes que agregar referencia de System.Speech y luego importar esto Imports System.Speech.Synthesis
En C# using System.Speech.Synthesis;
|
|
« Última modificación: 28 Abril 2019, 20:59 pm por FJDA »
|
En línea
|
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
ops esto es perfecto ahora si que si Lo pongo de las dos maneras para veas la diferencia Dim message, message2, sapi message = "el ninio no sabe lo que es un monio en la cabeza" message2 = "el ninyo no sabe lo que es un monyo en la cabeza" sapi = CreateObject("sapi.spvoice") sapi.rate = -5 sapi.Speak(message) sapi.Speak(message2)
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.8Tienes que agregar referencia de System.Speech y luego importar esto Imports System.Speech.Synthesis
En C# using System.Speech.Synthesis;
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
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
FJDA
Desconectado
Mensajes: 322
|
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
Conectado
Mensajes: 9.878
|
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... Dim synth As New SpeechSynthesizer()
Pongo varios ejemplos útiles: Seleccionar voz sintética femenina en Español de España. synth.SelectVoice("Microsoft Helena Desktop") synth.Rate = -5 synth.Speak("¡Viva España!")
Seleccionar voz sintética femenina en Inglés de EEUU. synth.SelectVoice("Microsoft Zira Desktop") synth.Rate = -5 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. synth.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult, 0, New CultureInfo("es-ES")) synth.Rate = -5 synth.Speak("¡Viva España!")
Iterar todas las voces instaladas en el sistema. For Each installedVoice As InstalledVoice In synth.GetInstalledVoices() Dim voiceInfo As VoiceInfo = installedVoice.VoiceInfo Dim sb As New StringBuilder() sb.AppendFormat("{0}:{1}, {2}:{3}, {4}:{5}, {6}:{7}, {8}:{9}", NameOf(voiceInfo.Name), voiceInfo.Name, NameOf(voiceInfo.Culture), voiceInfo.Culture.Name, NameOf(voiceInfo.Gender), voiceInfo.Gender.ToString(), NameOf(voiceInfo.Age), voiceInfo.Age.ToString(), NameOf(installedVoice.Enabled), installedVoice.Enabled) Console.WriteLine(sb.ToString()) If (installedVoice.Enabled) Then synth.SelectVoice(voiceInfo.Name) synth.Rate = -5 synth.Speak("¡Viva España!") End If Next
Saludos.
|
|
« Última modificación: 28 Abril 2019, 21:25 pm por Eleкtro »
|
En línea
|
|
|
|
FJDA
Desconectado
Mensajes: 322
|
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... Dim synth As New SpeechSynthesizer()
Pongo varios ejemplos útiles: Seleccionar voz sintética femenina en Español de España. synth.SelectVoice("Microsoft Helena Desktop") synth.Rate = -5 synth.Speak("¡Viva España!")
Seleccionar voz sintética femenina en Inglés de EEUU. synth.SelectVoice("Microsoft Zira Desktop") synth.Rate = -5 synth.Speak("¡Viva España!")
Seleccionar voz sintética por género, año y localización. synth.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult, 0, New CultureInfo("es-ES")) synth.Rate = -5 synth.Speak("¡Viva España!")
Iterar todas las voces instaladas en el sistema. For Each installedVoice As InstalledVoice In synth.GetInstalledVoices() Dim voiceInfo As VoiceInfo = installedVoice.VoiceInfo Dim sb As New StringBuilder() sb.AppendFormat("{0}:{1}, {2}:{3}, {4}:{5}, {6}:{7}, {8}:{9}", NameOf(voiceInfo.Culture), voiceInfo.Culture.Name, NameOf(voiceInfo.Gender), voiceInfo.Gender.ToString(), NameOf(voiceInfo.Age), voiceInfo.Age.ToString(), NameOf(installedVoice.Enabled), installedVoice.Enabled) Console.WriteLine(sb.ToString()) If (installedVoice.Enabled) Then synth.SelectVoice(voiceInfo.Name) synth.Rate = -5 synth.Speak("¡Viva España!") End If 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/62941538y 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 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MS-Anna-1033-20-DSK Dim synth As New SpeechSynthesizer() synth.SelectVoice("Microsoft Anna") synth.Rate = -5 synth.Speak("¡Viva España!")
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
rbc voice tweaker
Multimedia
|
theloop
|
1
|
2,227
|
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,585
|
30 Octubre 2012, 08:43 am
por Eleкtro
|
|
|
[Ayuda] SAPI y reconocimiento de voz
.NET (C#, VB.NET, ASP)
|
TMarmol
|
3
|
2,856
|
4 Diciembre 2013, 00:36 am
por pedrosakki
|
|
|
SAPI de Windows para Java
Java
|
Macarena
|
0
|
1,500
|
29 Agosto 2014, 16:43 pm
por Macarena
|
|
|
ccna voice
Redes
|
cristianetmx
|
1
|
2,047
|
25 Febrero 2015, 18:24 pm
por suranderus
|
|