Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - rigorvzla

#46
Buenas tengo un problema simple y complicado, y es que quiero implementar este nuget
Tyrrrz/YoutubeMusicDownloader
  y no se como usarlo, sirve para descargar el mp3 del video, la documentacion no la entiendo si hay alguien que ya lo alla usado y me pueda ayudar seria perfecto es, colocar el codigo en un boton y al colocar la direccion en un textbox, ejecute la accion de descargar y convertir el video a mp3 en una direccion especifica donde se guardara , gracias de antemano o que si me peuden explcar de como iniciar a usarlo de forma clara tambien seria gran ayuda.
#47
hola amigos, resulta que tengo en una misma solucion 2 hojas xaml distintas, resulta que en la primera (principal) luego de crear el objeto recognizerengine lo puedo usar perfectamente, el problema empieza cuando llamo la segunda hoja, en la primera luego antes de llamar a la segunda hoja desactivo el recognizerc con un stop, la segunda hoja me funciona muy bien el recognizer, logicamente cuando cierro esa ventana regresa a la hoja principal y como anteriormente habia colocado en stop no escucha nada, yo pense en lo siguiente, poder antes de cerrar la ventana dos , reactivar el recognizer de la ventana uno, pero aqui radica mi problema, no se como hacerlo.

Podrian ayudarme hacerlo o si tienen una mejor solucion.

este es el objeto
SpeechRecognitionEngine escucha = new SpeechRecognitionEngine();

trate de colocarlo asi public SpeechRecognitionEngine escucha = new SpeechRecognitionEngine();

pero no se como llamarlo de la otra hoja xaml.

Este es la orden en la ventana 1

case "mis carpetas":
                    speechOn = false;               
                    menuCarpetas = new Modu2.MenuCarpetas();
                    menuCarpetas.Show();
                    escucha.RecognizeAsyncStop();
                    break;


detengo el recognize.

ventana dos a la hora de cerrarla

if (speechCarpetas == "cerrar ventana")
            {
                escuchaCarpetas.RecognizeAsyncStop();
     escucha.RecognizeAsync(RecognizeMode.Multiple); (en teoria seria algo asi)
                Close();
            }


no se como poner publico el recognizer de la ventana uno para activarlo desde la segunda.

QUIERO DESEARLES A TODOS UN FELIZ AÑO!!!!  :xD  ;-) y dar las gracias a los que me apoyaron este año y espero seguir contando con uds , gracias mas a la paciencia que me han tenido , un abrazo y un beso a tod@s en caso de haber alguna chica, disfruten y pasenla genial con sus amigos y seres queridos. Gracias compañeros.-
#48
.NET (C#, VB.NET, ASP) / Consulta 1
28 Diciembre 2017, 03:26 AM
Hola amigos, aunque paresca extraño hoy no les traigo un problema si no una consulta, que es la siguiente:

En una setting string, puedo guardar mas de un valor string?

tratare de explicarme mejor, tengo una

string carro;

a esto le asigno un setting (no se como se le dice o se llama espero me enteindan((hagan el esfuerzo))) .

resulta que si yo desde la aplicacion le introdusco otra cadena y la guardo OBVIAMENTE va a cargar en el proximo inicio esa palabra nueva, perfecto.

Pero es posible guardar mas de una string en un setting string?

Porque tengo una aplicacion donde tengo unos 20+ textbox, cada uno tiene un setting y cuando el ususario los rellena y guarda esta perfecto, pero se me ocurrio crear otros 20+ y bueno queria saber si podia saltarme el crear 20+ settins nuevamente.
#49
Hola amigos , espero que todos pasaran una navidad radiante, el dia de hoy tengo un problema y es que realice un ListBox y aparte  3 botones (1 me limpia el cuadro, 2 busca la carpeta que contiene lo mostrado en el listbox, 3 hace que se cargen los datos de la carpeta en el listbox).
Hasta aqui todo bien . Tengo un TextBox que es donde se muestra la direccion de la carpeta genial.

Ahora el problema es que no se, como hacer uso de lo que se muestra en el Listbox, en este caso se muestraran archivos MP3(no se como hacer que solo aparescan estos archivos) y quiero de alguna forma seleccionarlos y reproducirlos con otro boton, que deberia hacer o como debo plantear el asunto?
#50
hola mi gente , les traigo una inquietud, como se puedo hacer que este codigo, tome la direccion tal cual completa, por que asi como la tengo toma el primer nombre y omite lo demas creando una carpeta llamada "Biblioteca" y no como realmente quiero sque se llame.

string pathDestination = @"C:\Biblioteca AIRH\Comprimidos\";
                ProcessStartInfo p = new ProcessStartInfo();               
                p.FileName = @"Procesos\7z.exe";
                p.Arguments = "a " + pathDestination + targetName+ " @listfile.lst" + " -t7z -mx=9";             
                p.WindowStyle = ProcessWindowStyle.Hidden;
                Process x = Process.Start(p);
...
...


la idea es que guarde el archivo en la direccion que se menciona arriba en cambio lo que hace es guardarlo en C:\ con el nombr biblioteca.7z que se debe hacer?
#51
Bueno, mi consulta es la siguiente, quisiera saber si el rendimiento de un programa mejora en estas condiciones:

Caso 1: El primer programa que realice hacia muchas referencias a archivos externos TXT y al ponerlo en funcionamiento el tiempo de reaccion era ciertamente lento.

Caso 2: Descarte la primera opcion y realice desde cero este segundo, las referencias que hacia a archivos externos, la utilice dentro de la misma solucion como "clases", esto mejoro enormemente el tiempo de respuesta, aciendolo mas corto osea mas rapido cumplir la accion cuando uno la ejecutaba.

Actualmente llamo programas externos desde la solucion osea (archivos .exe) y mi pregunta radica en este punto.

Caso 3: Realizar el programa desde cero nuevamente y los archivos exe que llama , crearlos en la misma solucion, para no llamar al exe , de forma externa si no llamarlo desde dentro de la solucion, en caso de ser posibole  mejoraria el rendimiento del programa respecto a velocidad de respuesta??

Nota: Actualmente mi programa funciona solamente en mi pc y no en otras computadoras, cosa que quiero resolver y no encuentro como , si alguien tiene una sugeencia estaria perfecto.
#52
.NET (C#, VB.NET, ASP) / Grabadora de Sonido
21 Diciembre 2017, 13:39 PM
Cambiando de tema, navegando por internet encontre un codigo interesante que te permite capturar todo el sonido que sale de las cornetas, esta basado en linea de comandos

namespace GrabadoraCMD
{
    class Program
    {
        [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
        private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);

        static void Main(string[] args)
        {
            mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
            mciSendString("record recsound", "", 0, 0);
            Console.WriteLine("recording, press Enter to stop and save ...");
            Console.ReadLine();

            mciSendString("save recsound c:\\work\\result.wav", "", 0, 0);
            mciSendString("close recsound ", "", 0, 0);
        }
    }
}


solo que al correrlo, abre pero no graba y no guarda nada , me podrian decir que falta ?

encontre otra mas elaborada creada por un arabe que segun graba lo que entra en el microfono y tambien la salida de las cornetas, pero leyendo en los comentarios habia gente que decia lo mismo que yo, faltaban cosas.

Import System.Runtime.InteropServices namespace

    using System.Diagnostics; 
     using System; 
     using System.Windows.Forms; 
     using System.Collections; 
     using System.Drawing; 
     using Microsoft.VisualBasic; 
     using System.Data; 
     using System.Collections.Generic; 
     using System.Runtime.InteropServices; 

Now, in your code module, create a function named record that will access the winmm.dll

    [DllImport("winmm.dll",EntryPoint="mciSendStringA", ExactSpelling=true, CharSet=CharSet.Ansi, SetLastError=true)] 
    private static extern int record(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback); 

For record button for Button1, put this code below

    public void Button1_Click(System.Object sender, System.EventArgs e) 
    { 
       timer1.Enabled = true; 
       timer1.Start(); 
       record("open new Type waveaudio Alias recsound", "", 0, 0);   
       record("record recsound", "", 0, 0);   
    } 

The function named record was called here to open a wav audio file that is named as recsound. Then this will record sound as you click the record button. Note: Provide headset with microphone or speaker in your PC or laptop for you to say the words to record.

For save and stop button for Button2, put this code below

    public void Button2_Click(System.Object sender, System.EventArgs e) 
    { 
       timer1.Stop(); 
       timer1.Enabled = false; 
       record("save recsound d:\\mic.wav", "", 0, 0); 
       record("close recsound", "", 0, 0); 
    } 

The recsound alias that we initialized in the record button was called here. This button will save the recorded audio file and saved into D directory and will named as mic.wav. Then after saving, we close the recorded sound.

For play button for Button3, put this code below

    public void Button3_Click(System.Object sender, System.EventArgs e) 
    { 
       ms = 0; 
       h = 0; 
       s = 0; 
       m = 0; 
       timer1.Enabled = false; 
       lblhur.Text = "00"; 
       lblmin.Text = "00"; 
       lblsecond.Text = "00"; 
       (new Microsoft.VisualBasic.Devices.Audio()).Play("d:\\mic.wav"); 
    } 

We used the Play function in Audio to play the saved file in D Directory, the mic.wav, that we recorded its sound earlier.Click first record, say the words you wanted to say, click the save button, and play it.


ahi esta la explicacion la cual segui al pie de la letra pero todo quedo mal.
#53
.NET (C#, VB.NET, ASP) / ProgressBar
19 Diciembre 2017, 19:31 PM
hola amigos, alguien podria explicarme como se debe hacer para enlazar un ProfressBar en el proceso de un programa, hace un tiempo atras me ayudaron hacer un extractor y descompresor, cosa que funciona de joya. la cuestion es que si son archivos muy pesados , el cumple su trabajo tarde o temprano, pero no se sabe si esta o no en funcionamiento, hasta que termina y da una alerta hablada.

me podrian ayudar porfavor.
#54
Hola amigos, ya podria decir que tengo una aplicacion, y al probarla en mi pc funciona de maravillas en modo debug y release  ejecutando el exe , pero cuando copie ambos (cada carpeta debug y release) para probarlos en otra computadora me dio este error


Firma con problemas:
  Nombre del evento de problema:    CLR20r3
  Firma del problema 01:    AIRH.exe
  Firma del problema 02:    1.0.0.0
  Firma del problema 03:    5a37d2b3
  Firma del problema 04:    System.Speech
  Firma del problema 05:    4.6.1590.0
  Firma del problema 06:    5787fe32
  Firma del problema 07:    4ae
  Firma del problema 08:    28
  Firma del problema 09:    System.ArgumentException
  Versión del sistema operativo:    6.1.7601.2.1.0.256.1
  Id. de configuración regional:    3082
  Información adicional 1:    0a9e
  Información adicional 2:    0a9e372d3b4ad19135b953a78882e789
  Información adicional 3:    0a9e
  Información adicional 4:    0a9e372d3b4ad19135b953a78882e789

Me podrian ayudar a interpretar eso y buscar solucion porfavor
#55
.NET (C#, VB.NET, ASP) / no me funciona el tooltip
17 Diciembre 2017, 14:41 PM
hola ... de nuevo , me podrian explicar por que no me sirve el tooltip creo que lo hacia mal asi que buscque ejemplos en internet y en efecto lo hacia bien

ToolTip ttEjemplo=new ToolTip();

ttEjemplo.SetToolTip(elNombredeTuBoton,"Texto a mostrar");


pero al colocarl el nombre de mi boton me lo señala en rojo!! y ya estoy rojo de no saber pr que, me ayudan
#56
hola de nuevo, por aqui traigo una inquietud y no encuentro como solventarlo espero puedan uds ayudarme, espero todos esten bien, tengo un problema y es el siguiente, tengo esta linea para guardar en un archivo txt

StreamWriter escrito = File.CreateText(@"Procesos\guardado.txt");
            String contenido = textBox.Text;
            escrito.Write(contenido.ToString());
            escrito.Flush();
            escrito.Close();       
            Close();


segun este codigo lo que escriba en el textbox se guardara en un archivo nuevo txt, (funciona)  eso hasta aqui esta claro , utilice el appendtext por el createtext, y resulta que me agrega la nueva palabra PERO pegada a la anterior y necesito que agregue la nueva, debajo de la anterior, como puedo logar eso??
#57
hola nuevamente, hoy les traigo algo que crei era simple o quizas lo es pero por falta de saber se me ha complicado, en un post anterior habia mensionado el hecho de guardar y recuperar los datos de una aplicacion, eso esta bien.

ocurre ahora que al yo recuperar el valor guardado, lo hace mas no lo muestra en el textbox y no se por que , me podrian ayudar?

private void btnGuardar_Click(object sender, RoutedEventArgs e)
       {            
           Settings.Default.tecladoDefault = letraA;
           Settings.Default.Save();            
       }

       private void btnCargar_Click(object sender, RoutedEventArgs e)
       {          
           letraA = Settings.Default.tecladoDefault;
       }

aqui tengo dos botones uno que guarda la configuracion del textbox donde l
etraA = txtA.text;

y el otro boton "cargar" que carga la configuracion de la palabra que se escribio en ese textbox, ahora bien, coloque un mensaje para que me mostrara el valor q me regresa y en efecto es la palabra guardada, pero en el textbox no se muestra nada.

porque? que falta? para que se muestre eso?

olvidaba mencionar que ya ese textbox tiene un texto preescrito que al hacer click se borra asi que no creo suponga problemas, ya que utilice el comando clear para limpiar el textbox antes de cargar la nueva configuracion y nada, elimine ese texto y lo cargue y nada que me lo muestra.
#58
hola nuevamente amigos, de antemano le sidre que resolvi el problema de 7z y comprimir directorio espero me digan si es posible hacer un post referente a eso con la respuetsa al problema.

Dejando de lado el punto anterio, se me presento una idea que no se como plantear y espero puedan ayudarme.

hice un boton a primera instancia para mostrar una letra "H" esto fue simbolico, luego de crear los objetos de recognizer y sintesis, cree un "string letraH" y "string speech"

cargue de manera normal
escucha.SpeechRecognized += Escucha_SpeechRecognized;
aqui procure crear el switch con la finalidad de meter la poblie orden que colocaria en un textbox
private void Escucha_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            speech = e.Result.Text;
            switch (speech)
            {
                case textBox:
                    InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_H);
                    break;
            }           

        }


luego cree el textBox para poder escribir la palabra y a mi parecer darle valor al "string letraH"

private void textBox_TextChanged(object sender, TextChangedEventArgs e)
        {           
            letraH = txtH.Text;
        }


aqui crei que todo iria bien , pero me dio error en
case textBox:
ya que al parecer solo acepta una entrada de texto y no string "texto";

trate de usar el try/catch y resulto que detectaba cualquier sonido y ejecutaba el comando, mas no se regia por lo que yo anotara en el textBox (que es lo que quiero lograr) y este me lo capte el switch
case letraH

si alguien puede explicarme como debo hacer le estaria muy agradecido ya que desconozco de herramientas.
#59
.NET (C#, VB.NET, ASP) / Libreria ookii ayuda
11 Diciembre 2017, 14:17 PM
hola amigos aqui vengo con un problema no se implementar esta libreria, alguien podria ayudarme explicandolo paso a paso porfavor, mi objetivo es obtener esa direccion de la carpeta que seleccionare para poder comprimirla, les muestro mi el programa.

si hay que hacer cambios no hay problema alguno solo pido que funcione.

namespace CaptureWPF
{
    public partial class MainWindow : Window
    {
        SpeechSynthesizer habla = new SpeechSynthesizer();
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
         VistaFolderBrowserDialog dlg = new VistaFolderBrowserDialog();

           dlg.SelectedPath = Properties.Settings.Default.StoreFolder;
dlg.ShowNewFolderButton = true;

if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    string path = dlg.SelectedPath;


                string targetName2 = (DateTime.Now.ToString("dd-MM-yy---h-mm-sst"));
                //Carpeta de destino
                string pathDestination = @"C:\ComprimidosAsistente\";
                ProcessStartInfo p = new ProcessStartInfo();
                p.FileName = @"Procesos\7z.exe";

                p.Arguments = "a " + pathDestination + targetName2 + " @listfile.lst" + " -t7z -mx=9";
                p.WindowStyle = ProcessWindowStyle.Hidden;
                Process x = Process.Start(p);
                habla.SpeakAsync("Esto puede tardar, dependiendo del tamaño del archivo");
                x.WaitForExit();
                File.Delete("listfile.lst");
                            } //if
        }

        private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            DragMove();
        } //Mover ventana

        private void Salir_Click(object sender, RoutedEventArgs e)
        {
            Close();
        } //Boton cerrar

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var ret = Process.Start(@"C:\ComprimidosAsistente");
                if (ret == null)
                { }
            }
            catch (Exception)
            {
                habla.Speak("La carpeta no se encuentra, se crea automáticamente al comprimir el archivo, o puede crearla manualmente en la siguiente dirección:");
                System.Windows.MessageBox.Show("Crea una carpeta en el disco C:  llamada: ComprimidosAsistentes");
            }
                    } //Boton ir a carpetas de comprimidos

    }
}


eso esta malo podrian corregirlo por favor estare muy muy agradecido. buen dia
#60
.NET (C#, VB.NET, ASP) / Calculadora por Voz
9 Diciembre 2017, 15:02 PM
hola de nuevo amigos hoy les traigo un asunto interesante, resulta que quiero hacer una calculadora que funcione con voz, en efecto basandome en ejemplos consegui eso, suma, resta, multiplica y divide. eh aqui el codigo para que lo prueben

class ConsoleSpeechProgram
    {
        static SpeechSynthesizer habla = new SpeechSynthesizer();
        static SpeechRecognitionEngine escucha;
        static bool done = false;
        static bool speechOn = true;
       
        static void Main(string[] args)
        {
            try
            {
                habla.SetOutputToDefaultAudioDevice();
                habla.SpeakAsync("Esperando Datos Para Calcular");
                escucha = new SpeechRecognitionEngine();
                escucha.SetInputToDefaultAudioDevice();
                escucha.SpeechRecognized += habla_SpeechRecognized;
                Choices ch_StartStopCommands = new Choices();
                ch_StartStopCommands.Add("calcula esto");
                ch_StartStopCommands.Add("desactivado");
                ch_StartStopCommands.Add("calculo terminado");
                GrammarBuilder gb_StartStop = new GrammarBuilder();
                gb_StartStop.Append(ch_StartStopCommands);
                Grammar g_StartStop = new Grammar(gb_StartStop);               
                //Choices ch_Numbers = new Choices();               
                //ch_Numbers.Add("1" + "1");
                //ch_Numbers.Add("10" + "1");
                //ch_Numbers.Add("10" + "2");
                //ch_Numbers.Add("10");
                //string[] Numbers = new string[1000]; //fallo en reconocimiento no es acertivo
                //for (int i = 0; i < 1000; ++i)
                //    Numbers[i] = i.ToString();
                //Choices ch_Numbers = new Choices(Numbers);
                // Choices ch_Numbers = new Choices(File.ReadAllLines(@"Numeral.txt"));
                // escucha.LoadGrammarAsync(new System.Speech.Recognition.Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"Numeral.txt")))));
                GrammarBuilder gb_WhatIsXplusY = new GrammarBuilder();
                gb_WhatIsXplusY.Append("cuanto es");
                gb_WhatIsXplusY.Append(ch_Numbers);
                gb_WhatIsXplusY.Append("mas");
                gb_WhatIsXplusY.Append(ch_Numbers);
                GrammarBuilder gb_WhatIsXmenosY = new GrammarBuilder();
                gb_WhatIsXmenosY.Append("cuanto es");
                gb_WhatIsXmenosY.Append(ch_Numbers);
                gb_WhatIsXmenosY.Append("menos");
                gb_WhatIsXmenosY.Append(ch_Numbers);
                GrammarBuilder gb_WhatIsXporY = new GrammarBuilder();
                gb_WhatIsXporY.Append("cuanto es");
                gb_WhatIsXporY.Append(ch_Numbers);
                gb_WhatIsXporY.Append("por");
                gb_WhatIsXporY.Append(ch_Numbers);
                GrammarBuilder gb_WhatIsXentreY = new GrammarBuilder();
                gb_WhatIsXentreY.Append("cuanto es");
                gb_WhatIsXentreY.Append(ch_Numbers);
                gb_WhatIsXentreY.Append("entre");
                gb_WhatIsXentreY.Append(ch_Numbers);
                Grammar g_WhatIsXplusY = new Grammar(gb_WhatIsXplusY);
                Grammar g_WhatIsXmenosY = new Grammar(gb_WhatIsXmenosY);
                Grammar g_WhatIsXporY = new Grammar(gb_WhatIsXporY);
                Grammar g_WhatIsXentreY = new Grammar(gb_WhatIsXentreY);
                escucha.LoadGrammarAsync(g_StartStop);
                escucha.LoadGrammarAsync(g_WhatIsXplusY);
                escucha.LoadGrammarAsync(g_WhatIsXmenosY);
                escucha.LoadGrammarAsync(g_WhatIsXporY);
                escucha.LoadGrammarAsync(g_WhatIsXentreY);
                escucha.RecognizeAsync(RecognizeMode.Multiple);
                while (done == false) {; }
                habla.Speak("Cálculos Desactivados");
                Application.Exit();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        } // Main

          static void habla_SpeechRecognized(object sender,
          SpeechRecognizedEventArgs e)
           
        {
           
            string txt = e.Result.Text;
                       
            float confidence = e.Result.Confidence;
            Console.WriteLine("\nRecognized: " + txt);
            if (confidence < 0.60) return;
            if (txt.IndexOf("calcula esto") >= 0)
            {
                habla.Speak("Esperando Datos");
                speechOn = true;                               
            }
            if (txt.IndexOf("desactivado") >= 0)
            {
                habla.Speak("cálculos desactivados");
                speechOn = false;
            }
            if (speechOn == false) return;
            if (txt.IndexOf("calculo") >= 0 && txt.IndexOf("terminado") >= 0)
            {

                ((SpeechRecognitionEngine)sender).RecognizeAsyncCancel();
                done = true;
                                       
            }
            if (txt.IndexOf("cuanto") >= 0 && txt.IndexOf("mas") >= 0)
            {
                string[] words = txt.Split(' ');
                double num1 = int.Parse(words[2]);
                double num2 = int.Parse(words[4]);
                double sum = num1 + num2;
                Console.WriteLine("(Speaking: " + words[2] + " + " +
                  words[4] + " = " + sum + ")");
                habla.Speak(words[2] + " mas " + words[4] +
                  " es igual a " + sum);
            }
            if (txt.IndexOf("cuanto") >= 0 && txt.IndexOf("menos") >= 0)
            {
                string[] words = txt.Split(' ');
                double num1 = int.Parse(words[2]);
                double num2 = int.Parse(words[4]);
                double res = num1 - num2;
                Console.WriteLine("(Speaking: " + words[2] + " - " +
                  words[4] + " = " + res + ")");
                habla.Speak(words[2] + " menos " + words[4] +
                  " es igual a " + res);
            }
            if (txt.IndexOf("cuanto") >= 0 && txt.IndexOf("por") >= 0)
            {
                string[] words = txt.Split(' ');
                double num1 = int.Parse(words[2]);
                double num2 = int.Parse(words[4]);
                double mul = num1 * num2;
                Console.WriteLine("(Speaking: " + words[2] + " * " +
                  words[4] + " = " + mul + ")");
                habla.Speak(words[2] + " por " + words[4] +
                  " es igual a " + mul);
            }
            if (txt.IndexOf("cuanto") >= 0 && txt.IndexOf("entre") >= 0)
            {
                string[] words = txt.Split(' ');
                double num1 = int.Parse(words[2]);
                double num2 = int.Parse(words[4]);
                double div = num1 / num2;
                Console.WriteLine("(Speaking: " + words[2] + " / " +
                  words[4] + " = " + div + ")");
                habla.Speak(words[2] + " entre " + words[4] +
                  " es igual a " + div);
            }
        }

     
    }
}


hasta aqui todo va chevere pero las gramaticas de numeros es lo que se complica ya alla arriba comentado estan formas que probe y no dio resultado como queria entocnes investigando, encontre este codigo.

Perfecto si lo que quisiera pasar de numeros a palabras.

class Program
    {
        // PROGRAM HANDLES NEGATIVE AND POSITIVE DOUBLES


        static String NumWordsWrapper(double n)
        {
            string words = "";
            double intPart;
            double decPart = 0;
            if (n == 0)
                return "cero";
            try
            {
                string[] splitter = n.ToString().Split('.');
                intPart = double.Parse(splitter[0]);
                decPart = double.Parse(splitter[1]);
            }
            catch
            {
                intPart = n;
            }

            words = NumWords(intPart);

            if (decPart > 0)
            {
                if (words != "")
                    words += " y ";
                int counter = decPart.ToString().Length;
                switch (counter)
                {
                    case 1: words += NumWords(decPart) + " decimas"; break;
                    case 2: words += NumWords(decPart) + " centesimas"; break;
                    case 3: words += NumWords(decPart) + " milesimas"; break;
                    case 4: words += NumWords(decPart) + " diez-milesimas"; break;
                    case 5: words += NumWords(decPart) + " cien-milesimas"; break;
                    case 6: words += NumWords(decPart) + " millonesima"; break;
                    case 7: words += NumWords(decPart) + " diez-millonesima"; break;
                }
            }
            return words;
        }

        static String NumWords(double n) //converts double to words
        {
            string[] numbersArr = new string[] { "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez", "once", "doce", "trece", "catorce", "quince", "dieciseis", "diecisiete", "dieciohco", "diecinueve" };
            string[] tensArr = new string[] { "veinte", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa" };
            string[] suffixesArr = new string[] { "mil", "millones", "billon", "trillon", "quadrillon", "quintillon", "sextillon", "septillon", "octillon", "nonillon", "decillon", "undecillon", "duodecillon", "tredecillon", "Quattuordecillon", "Quindecillon", "Sexdecillon", "Septdecillon", "Octodecillon", "Novemdecillon", "Vigintillon" };
            string words = "";

            bool tens = false;

            if (n < 0)
            {
                words += "negative ";
                n *= -1;
            }

            int power = (suffixesArr.Length + 1) * 3;

            while (power > 3)
            {
                double pow = Math.Pow(10, power);
                if (n >= pow)
                {
                    if (n % pow > 0)
                    {
                        words += NumWords(Math.Floor(n / pow)) + " " + suffixesArr[(power / 3) - 1] + ", ";
                    }
                    else if (n % pow == 0)
                    {
                        words += NumWords(Math.Floor(n / pow)) + " " + suffixesArr[(power / 3) - 1];
                    }
                    n %= pow;
                }
                power -= 3;
            }
            if (n >= 1000)
            {
                if (n % 1000 > 0) words += NumWords(Math.Floor(n / 1000)) + " mil, ";
                else words += NumWords(Math.Floor(n / 1000)) + " mil";
                n %= 1000;
            }
            if (0 <= n && n <= 999)
            {
                if ((int)n / 100 > 0)
                {
                    words += NumWords(Math.Floor(n / 100)) + " ciento";
                    n %= 100;
                }
                if ((int)n / 10 > 1)
                {
                    if (words != "")
                        words += " ";
                    words += tensArr[(int)n / 10 - 2];
                    tens = true;
                    n %= 10;
                }

                if (n < 20 && n > 0)
                {
                    if (words != "" && tens == false)
                        words += " ";
                    words += (tens ? " y " + numbersArr[(int)n - 1] : numbersArr[(int)n - 1]);
                    n -= Math.Floor(n);
                }
            }

            return words;

        }
        static void Main(string[] args)
        {
            Console.Write("Introduce un numero para escribirlo en letras: ");
            Double n = Double.Parse(Console.ReadLine());

            Console.WriteLine("{0}", NumWordsWrapper(n));
            Console.ReadKey();
        }
    }


con este codigo al ejecutarlo yo puedo colocar cualquier numero y el lo responde escrito en letras, en este caso lo que necesito es lo contrario y ver como adaptar ese codigo a la calculadora , en teoria no harian falta millones de numeros y el resultado seria una calculadora que entendiera cualquier cifra hablada.
#61
.NET (C#, VB.NET, ASP) / Consulta AppendDictation
3 Diciembre 2017, 23:19 PM
Hola de nuevo amigos, hoy les traigo mas que un problema una duda, resulta que el appendDictation de windows, o bueno visualstudios, tiene una gran cantidad de gramaticas por defecto, el problema es que en palabras complejas o mas de 2 palabras deja de ser acertivo, podria definirlo como problemas de audicion  :laugh:.

Tengo varias inquietudes, el entrenamiento de windows hace que el funcione de mejor manera escuche y entienda mejor?

existen apis mejores que el de windows que cumplan esa funcion (español netamente) ?

sacando el entrenamiento de windows hay alguna forma de hacer que mejore?

espero sus respuestas y gracias de antemano.
PD. Estudio no lo dejo de lado pero a mi mente vienen esas dudas que me gustaria despejar.

Gracias de antemano
#62
.NET (C#, VB.NET, ASP) / 7 Zip Extraer
1 Diciembre 2017, 01:57 AM
Hola de nuevo amigos, como en el post anterior se logro un codigo para comprimir un archivo por medio del openfilediag, en este nuevo post ya hay gran parte del trabajo hecho, solo que no veo, y no doy con el problema no poder extraer, con la linea de comando.

espero alguien pueda ver y corregir este codigo

   using System;
   using System.Collections.Generic;
   using System.Linq;
   using System.Text;
   using System.Threading.Tasks;
   using System.Windows;
   using System.Windows.Controls;
   using System.Windows.Data;
   using System.Windows.Documents;
   using System.Windows.Input;
   using System.Windows.Media;
   using System.Windows.Media.Imaging;
   using System.Windows.Navigation;
   using System.Windows.Shapes;
   
   using Microsoft.Win32; //Necesario para el uso de OpenFileDialog
   using System.Diagnostics; //Necesario para el uso de ProcessStartInfo y Precess
   using System.IO; //Necesario para el uso de File y StreamWriter
   
   namespace WpfApplication1
   {
       /// <summary>
       /// Lógica de interacción para MainWindow.xaml
       /// </summary>
       public partial class MainWindow : Window
       {
           public MainWindow()
           {
               InitializeComponent();
           }
   
           private void Button_Click_1(object sender, RoutedEventArgs e)
           {
   
               OpenFileDialog ofd = new OpenFileDialog();
   
                   ofd.Title = "Archivos a comprimir";
                   ofd.Filter = "All files|*.7z; *.rar; *.zip; *.iso";
                   ofd.Multiselect = true;
                   if ((ofd.ShowDialog() == true))
                   {
                       StreamWriter sw = new StreamWriter("listfile.lst");
                       //Crea una lista de archivos
                       foreach (string n in ofd.FileNames)
                       {
                           sw.WriteLine(n);
                       }//foreach
                       sw.Close();
                       int mx = 1;
   
                       string targetName = "Example";
                       //Carpeta de destino
                       string pathDestination = "Prueba\\";
                       ProcessStartInfo p = new ProcessStartInfo();
                       p.FileName = "7za.exe";
   
                       p.Arguments = "a " + pathDestination + targetName + " @listfile.lst" + " -t7z -mx" + mx; <--- ERROR DE ARGUMENTOS (segun mi criterio)
                       p.WindowStyle = ProcessWindowStyle.Hidden;
                       Process x = Process.Start(p);
                       x.WaitForExit();
                       File.Delete("listfile.lst");
                   } //if
   
           }
       }
   }
   
   


busque en internet y decia que debia colocar la letra "x" en donde va "a" pero al hcerlo nada ocurre, alguna solucion del porque eso pasa? gracias de antemano
#63
.NET (C#, VB.NET, ASP) / 7-ZIp
21 Noviembre 2017, 04:21 AM
Hola de nuevo amigos, despues de una batalla ganada en esta gran guerra jeje, me decido a usar (no se si llamarle api) de 7zip ya que quiero poder hacer click en un archivo cualquiera de mi pc y con una orden se comprima. alguien teine alguna idea? dejo un ejemplo que consegui pero no puedo llevar acabo ya que por mas click que hago enel archivo no me lo toma en cuenta al momento de ejecutar la orden.

string sourceName = "ExampleText.txt";
            string targetName = "Example.7z";

            // 1
            // Initialize process information.
            //
            ProcessStartInfo p = new ProcessStartInfo();
            p.FileName = "7za.exe";

            // 2
            // Use 7-zip
            // specify a=archive and -tgzip=gzip
            // and then target file in quotes followed by source file in quotes
            //
            p.Arguments = "a -t7z \"" + targetName + "\" \"" +
                sourceName + "\" -mx=9";
            p.WindowStyle = ProcessWindowStyle.Hidden;

            // 3.
            // Start process and wait for it to exit
            //
            Process x = Process.Start(p);
            x.WaitForExit();


SOlamente toma archivos en una ruta especifica y no una ruta cualquiera.
quice por iniciativa propia copiar en el portapapeles a ver si de ahi me lo tomaba y no. espero puedan ayudarme (aplicando la misma descripcion a descomprimir) y tomo este por que el winrar debe estar instalado en el huesped y el zip no tiene buena tasa de compresion.
#64
buenas amigos les traigo lo siguiente , hago un programa simple donde lo que quiero es que  cuando yo sombree algo con el raton y diga "leer" el programa lo haga sin mas nada. aqui esta mi intento fallido si alguien me sabe seria de gran ayuda.

case "leer":
                    /   TextReader leer_eso;
                        leer_eso = new TextReader.Read();
                        speakOut(leer_eso.ReadLine());
                       break;
#65
.NET (C#, VB.NET, ASP) / Gramatica
28 Octubre 2017, 02:52 AM
Buenas noches amigos,hoy les traigo una inquietud,sera posible que me dijeran , cuantas gramaticas pueden ser cargadas en un proyecto de reconocimiento de voz?    y si son mas de 2 , cual seria el metodo o la linea de comando para hacer que las mantenga en memoria y asista ahi cuando se le de alguna orden?
#66
Buenos dias amigos, soy nuevo en el tema y me parece muy interesante realmente, les traigo una pregunta que no encontre en internet... (porlomenos en español).

Resulta que estoy haciendo un programa de reconocer voz pero hasta el momento solo eh logrado que me entienda 2 palabras ej:(como estas). Ahi el da una respuesta (esto ultimo es solo para saber que me reconocio todo lo que dije).

actualmente uso el WPF de Visual studio 2015

aqui el codigo que me sirve pero no mas de 2 palabras hago la acotacion que hace referencia a 2 archivos txt donde ya estan las palabras, no se como hacer referencias a mas archivos txt para poder unir toda la lectura  y lograr que me entienda mas de 3 palabras ej:(carlos estas como) o mas.


(main)
InitializeComponent();
            habla.SpeakAsync("Iniciando");
            escucha.SetInputToDefaultAudioDevice();
            //escucha.LoadGrammar(new DictationGrammar());
            //escucha.LoadGrammarAsync(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"Sujeto.txt")))));
            escucha.LoadGrammarAsync(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"Palabras.txt")))));
            //escucha.LoadGrammarAsync(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"Nombres.txt")))));
            escucha.RecognizeAsync(RecognizeMode.Multiple);
            escucha.SpeechRecognized += Escucha_SpeechRecognized;

// Referencia de dos palabras //
            Choices Palabras = new Choices(File.ReadAllLines(@"Palabras.txt"));
            GrammarBuilder Sujeto = new GrammarBuilder(new Choices(File.ReadAllLines(@"Sujeto.txt")));
            Sujeto.Append(Palabras);
            Grammar gramaticaFrase1 = new Grammar(Sujeto);
            escucha.LoadGrammar(gramaticaFrase1);


espero su pronta respuesta, gracias de antemano , ahi les dejo el codigo no esta haci en mi proyecto pero para q tengan una idea a que me refiero.