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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: 1 2 3 4 5 6 [7]
61  Programación / .NET (C#, VB.NET, ASP) / Teclado por Voz configurable en: 12 Diciembre 2017, 18:36 pm
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
Código:
escucha.SpeechRecognized += Escucha_SpeechRecognized;
aqui procure crear el switch con la finalidad de meter la poblie orden que colocaria en un textbox
Código:
 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"

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

aqui crei que todo iria bien , pero me dio error en
Código:
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
Código:
case letraH

si alguien puede explicarme como debo hacer le estaria muy agradecido ya que desconozco de herramientas.
62  Programación / .NET (C#, VB.NET, ASP) / Libreria ookii ayuda en: 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.

Código:
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
63  Programación / .NET (C#, VB.NET, ASP) / Calculadora por Voz en: 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

Código:
 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.

Código:
 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.
64  Programación / .NET (C#, VB.NET, ASP) / Consulta AppendDictation en: 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
65  Programación / .NET (C#, VB.NET, ASP) / 7 Zip Extraer en: 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

Código:
    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
66  Programación / .NET (C#, VB.NET, ASP) / 7-ZIp en: 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.

Código:
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.
67  Programación / .NET (C#, VB.NET, ASP) / Ayuda necesito que el pc lea en: 20 Noviembre 2017, 00:43 am
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.

Código:
case "leer":
                    /   TextReader leer_eso;
                        leer_eso = new TextReader.Read();
                        speakOut(leer_eso.ReadLine());
                       break;
68  Programación / .NET (C#, VB.NET, ASP) / Gramatica en: 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?
69  Programación / .NET (C#, VB.NET, ASP) / Reconocimiento de Palabras y Oraciones en: 20 Octubre 2017, 15:12 pm
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.

Código:
(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.
Páginas: 1 2 3 4 5 6 [7]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines