Visual Basic.NET - Síntesis de voz

 
Vista:
sin imagen de perfil
Val: 33
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Carlos (21 intervenciones) el 30/06/2022 21:17:05
Hola a tod@s

En anteriores frameworks había una clase para sintetizar voz (System.Speech o algo similar, no lo reuerdo). En Visual Studio 17 parece haber desaparecido. ¿Han quitado esta clase? ¿Ahora cómo se puede sintetizar voz?

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 01/07/2022 09:03:19
Hola,

No pienso que es un problema VS2017, tampoco funciona con mi VS2013. Pienso que el problema viene con la version del sistema. Mi sistema es Windows 10.

Quizá debes descargar las herramientas de Microsoft como mostrado en la imagen :

Speech2

Espero que este te ayudara ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Síntesis de voz

Publicado por Carlos (78 intervenciones) el 01/07/2022 11:51:03
Gracias por tu respuesta, sin embargo al ir a descargar SpeechKit, me encuentro con que ¿es una extensión de evaluación? ¿de verdad hay que "pasar por caja" para poder tener esta funcionalidad en VS?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 01/07/2022 12:33:20
No sé sobre la versión de evaluación, nunca he visto este caso ...
Ves si funciona con quieres y verás más tarde si es realmente una evaluación.
....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 01/07/2022 15:23:47
Tienes razón.

Con mi primera pantalla, no es como en tu PC. No es escrito que es evaluación.
Pero lo veo cuando probo de lo descargar (Try It / Buy It):

Speech1

Si la pista Nuget (https://www.nuget.org/packages/System.Speech/) te da la solución, dice me.
Busco otra pista pero no prometo resultado ....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 01/07/2022 17:45:45
He encontrado !
El DLL es registrar en tu PC.
Te hago un video luego, ahora, debe partir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 01/07/2022 20:09:11
Hola,

Aqui es la solucione para encontrar System.Speech.dll en tu PC.

Mira este video : https://www.dropbox.com/s/hciaco6i37rj69y/SystemSpeech.mp4?dl=0

La ruta del fichero en el video es :
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\

Esta ruta puede ser un poco diferente segun el sistema y su intalacion, siempre debes buscar a partir de :
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\

Buenas tardes ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 33
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Carlos (21 intervenciones) el 08/07/2022 20:40:22
Instalé el Framework que tiene el espacio de nombres System.Speech, que lo importo sin problemas.
1
Imports System.Speech


añado un botón al formulario

1
2
3
4
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim s As New Speech.Synthesis.SpeechSynthesizer
        s.Speak("hola amigos")
    End Sub
y cuando hago clic en él, obtengo el siguiente error|;

System.BadImageFormatException
HResult=0x80131058
Mensaje = Could not load file or assembly 'System.Speech, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (0x80131058)
Origen = silabico2
Seguimiento de la pila:
en silabico2.Form1.Button1_Click(Object sender, EventArgs e) en C:\Users\Carlos\source\repos\silabico2\silabico2\Form1.vb: línea 6
en System.Windows.Forms.Control.OnClick(EventArgs e)
en System.Windows.Forms.Button.OnClick(EventArgs e)
en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
en System.Windows.Forms.Control.WndProc(Message& m)
en System.Windows.Forms.ButtonBase.WndProc(Message& m)
en System.Windows.Forms.Button.WndProc(Message& m)
en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)
en Interop.User32.DispatchMessageW(MSG& msg)
en System.Windows.Forms.Application.ComponentManager.Interop.Mso.IMsoComponentManager.FPushMessageLoop(UIntPtr dwComponentID, msoloop uReason, Void* pvLoopData)
en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(msoloop reason, ApplicationContext context)
en System.Windows.Forms.Application.ThreadContext.RunMessageLoop(msoloop reason, ApplicationContext context)
en System.Windows.Forms.Application.Run(ApplicationContext context)
en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
en silabico2.My.MyApplication.Main(String[] Args) en : línea 83

Excepción interna 1:
BadImageFormatException: Cannot load a reference assembly for execution.


Supongo que será que falta algo por instalar pero no creo. De todos modos no sé qué sucede porque cuando lo importo con
1
Imports System.Speech
no da ningún error ni subraya ni nada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 08/07/2022 21:29:18
Hola,
Con mi ves en mi video, he instalado ningún Framework. Pero también ves que existe varias versiones para elegir la DLL.
También existe la posibilidad de elegir la versión de Framework para la compilación en las propiedades del proyecto (si no conoces esta propiedad del proyecto, dices me y hare un video).
Probaré tus codigos un poco más tarde o mañana y te comentaré.
...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 08/07/2022 23:49:39
Veo que no tienes los ficheros en la carpeta C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\ como dice en el video.
Tambien, he tomado el fichero en la carpeta .C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profiles\Client. Pero podemos elegido C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profiles\Client.\ES\ para la idioma, peor ES es la idioma por defecto en tu PC.
Tienes que mostrar el fichero System.Speech.DLL, no solamente mostrar la carpeta que lo contiene.

Como en el video, trabajamos con v4.0, he compilado para el nivel 4.0. No si este hace la diferencia pero tu código funciona muy bien.
Sobre la carpeta ES o otra (FR o ES en mi PC), tenemos que elegir System.Speech.DLL en la carpeta ES, o FR, o US, ..., según la idioma utilizada. si no, pronuncia desasido malo. En mi PC, pronuncia muy malo "Hola amigos" pero pronuncia muy bien "Bonjour amis".

He elegido framework 4.0 para compilar el proyecto, he lo dicho directamente al inicial, pero puedes cambiar mas tarde en las propiedades del proyecto :
Speech01

He elegido System.Speech.dll en C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profiles\Client. como puedes lo hacer en tu PC :
Speech02

Para agregar la DLL al proyecto, he mostrado el fichero System.Speech.dll :
Speech03

Con estas condiciones, no veo como no funciona en tu PC. Comentes me ...
Ahora, aqui, es la 23h50, voy dormir.
Hasta mañana ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 09/07/2022 07:56:45
Hola,

Debo corregir las estupideces que he escritas ayer ....
"Sobre la carpeta ES o otra (FR o ES en mi PC), tenemos que elegir System.Speech.DLL en la carpeta ES, o FR, o US, ..., según la idioma utilizada. si no, pronuncia demasiado malo. " no es real, no existe dll en ES y en FR, estas carpetas contienen ficheros XML.

Pero, porqué en mi PC, tu programa pronuncia bien el francés y no el español ?

Espero que ahora tu programa funciona como quieres.

Que tenga un buen dia...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 33
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Carlos (21 intervenciones) el 09/07/2022 11:57:24
Hola Phil, gracias por tu ayuda pero estoy muy perdido. Envío una captura de pantalla por si aclara algo.

Captura97
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 09/07/2022 13:51:17
No comprendo.

En mi PC, las DLL estan en las carpetas C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 y tambien ...\Profiles y tambien ...\Profiles\Client, y todas están bien. No sé porque no es mismo en tu PC.
Debes buscar en tu PC la DLL o otra, deben existir.

Quiza es necesario de reinstalar VisualStudio ?

Ves mis carpetas :
speech001

speech002
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Síntesis de voz

Publicado por Phil Rob (1554 intervenciones) el 09/07/2022 18:38:40
Como estas ?

No sé si este puede te ayudar, pero te adjunto el fichero System.Speech.zip. El contiene el fichero System.Speech.dll.
Quizá puedes lo poner en C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 y lo referenciar como en el video. No lo creo mucho pero puedes intentar.

...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar