From c59e00cf782d32c91e8f94fe45f90a26c7960eab Mon Sep 17 00:00:00 2001 From: deadvey Date: Mon, 30 Mar 2026 15:11:54 +0100 Subject: [PATCH] Added support for different voices, renamed language and quote files with their 2 letter abreviations. New arguments: -v, -c --- README.md | 4 + args.py | 9 +- config.json | 3 +- languages/{english.json => en.json} | 0 languages/{spanish.json => es.json} | 0 main.py | 6 +- quotes/{english.json => en.json} | 0 quotes/es.json | 423 +++++++++++++++++ quotes/spanish.json | 5 - voices.txt | 705 ++++++++++++++++++++++++++++ 10 files changed, 1144 insertions(+), 11 deletions(-) rename languages/{english.json => en.json} (100%) rename languages/{spanish.json => es.json} (100%) rename quotes/{english.json => en.json} (100%) create mode 100644 quotes/es.json delete mode 100644 quotes/spanish.json create mode 100644 voices.txt diff --git a/README.md b/README.md index f9fb7a1..39356d9 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,10 @@ All these options overide configuration in config.json
Specify a quote ID for quotes mode, see all quotes in your selected language with -u
**--language, -l **
Selects a language, defaults to english, must be a listed language in -i
+**--voice, -v **
+ Selects a voice to use, defaults to gwm/en in config.json
+**--list-voices, -c**
+ Lists all the available voices you can use, also see [voices.txt](voices.txt)
**--list-quotes, -u**
Lists the available quotes and exits
**--list-languages, -i**
diff --git a/args.py b/args.py index cb3a2f4..3e4581b 100644 --- a/args.py +++ b/args.py @@ -1,12 +1,14 @@ import os import json -def handle_arguments(arguments, config): +def handle_arguments(arguments, config, engine): for index, arg in enumerate(arguments[1:]): match arg: case '--wpm'|'-w': config['wpm'] = int(arguments[index+2]) case '--language'|'-l': config['language'] = arguments[index+2] + case '--voice'|'-v': + config['voice'] = arguments[index+2] case '--mode'|'-m': config['mode'] = arguments[index+2] case '--words'|'-o': @@ -28,6 +30,11 @@ def handle_arguments(arguments, config): for index,quote in enumerate(quotes): print(f'{index}: {quote['quote']} - {quote['author']}') exit() + case '--list-voices'|'-c': + voices = engine.getProperty('voices') + for voice in voices: + print(voice) + exit() case _: continue return config diff --git a/config.json b/config.json index 337e718..8c645de 100644 --- a/config.json +++ b/config.json @@ -3,5 +3,6 @@ "words": 20, "time": 30, "wpm": 50, - "language": "english" + "language": "en", + "voice": "gmw/en" } diff --git a/languages/english.json b/languages/en.json similarity index 100% rename from languages/english.json rename to languages/en.json diff --git a/languages/spanish.json b/languages/es.json similarity index 100% rename from languages/spanish.json rename to languages/es.json diff --git a/main.py b/main.py index 897a7c3..2c6aed5 100644 --- a/main.py +++ b/main.py @@ -8,16 +8,14 @@ import dictate engine = pyttsx3.init() -config = {} with open('config.json', 'r') as file: config = json.load(file) # Handle the command line arguments -config = args.handle_arguments(sys.argv, config) - -dictation = '' +config = args.handle_arguments(sys.argv, config, engine) engine.setProperty('rate', config['wpm']) +engine.setProperty('voice', config['voice']) # TODO: match case match config['mode']: case 'words': diff --git a/quotes/english.json b/quotes/en.json similarity index 100% rename from quotes/english.json rename to quotes/en.json diff --git a/quotes/es.json b/quotes/es.json new file mode 100644 index 0000000..28c6cb8 --- /dev/null +++ b/quotes/es.json @@ -0,0 +1,423 @@ + [ + { + "quote": "La pluma es la lengua del alma.", + "author": "Miguel de Cervantes" + }, + { + "quote": "El que quiere interesar a los demás tiene que provocarlos.", + "author": "Salvador Dalí" + }, + { + "quote": "Todos los niños nacen artistas. El problema es cómo seguir siendo artistas al crecer.", + "author": "Pablo Picasso" + }, + { + "quote": "Una es más auténtica, mientras más se parece a lo que soñó de sí misma.", + "author": "Pedro Almovodar" + }, + { + "quote": "Soy el desesperado, la palabra sin ecos, el que lo perdió todo, y el que todo lo tuvo.", + "author": "Pablo Neruda" + }, + { + "quote": "Aprender a sonreír es aprender a ser libres.", + "author": "Octavio Paz" + }, + { + "quote": "Memoria selectiva para recordar lo bueno, prudencia lógica para no arruinar el presente, y optimismo desafiante para encarar el futuro.", + "author": "Isabel Allende" + }, + { + "quote": "¿Se pueden inventar verbos? quiero decirte uno: Yo te cielo, así mis alas se extienden enormes para amarte sin medida.", + "author": "Frida Kalho" + }, + { + "quote": "Se necesitan dos años para aprender a hablar y sesenta para aprender a callar.", + "author": "Ernest Hemingway" + }, + { + "quote": "No hay que ir para atrás ni para darse impulso.", + "author": "Lao Tsé" + }, + { + "quote": "No hay caminos para la paz; la paz es el camino.", + "author": "Mahatma Gandhi" + }, + { + "quote": "Haz el amor y no la guerra.", + "author": "John Lennon" + }, + { + "quote": "Para trabajar basta estar convencido de una cosa: que trabajar es menos aburrido que divertirse.", + "author": "Charles Baudelaire" + }, + { + "quote": "Lo peor que hacen los malos es obligarnos a dudar de los buenos.", + "author": "Jacinto Benavente" + }, + { + "quote": "Las guerras seguirán mientras el color de la piel siga siendo más importante que el de los ojos.", + "author": "Bob Marley" + }, + { + "quote": "Aprende a vivir y sabrás morir bien.", + "author": "Confucio" + }, + { + "quote": "Cada día sabemos más y entendemos menos.", + "author": "Albert Einstein" + }, + { + "quote": "El mundo no está en peligro por las malas personas sino por aquellas que permiten la maldad.", + "author": "Albert Einstein" + }, + { + "quote": "La medida del amor es amar sin medida.", + "author": "San Agustín" + }, + { + "quote": "No hay nada que un hombre no sea capaz de hacer cuando una mujer le mira.", + "author": "Casanova" + }, + { + "quote": "Dar el ejemplo no es la principal manera de influir sobre los demás; es la única manera.", + "author": "Albert Einstein" + }, + { + "quote": "El dinero no puede comprar la vida.", + "author": "Bob Marley" + }, + { + "quote": "Si es bueno vivir, todavía es mejor soñar, y lo mejor de todo, despertar.", + "author": "Antonio Machado" + }, + { + "quote": "La mayor declaración de amor es la que no se hace; el hombre que siente mucho, habla poco.", + "author": "Platón" + }, + { + "quote": "Si das pescado a un hombre hambriento lo nutres durante una jornada. Si le enseñas a pescar, le nutrirás toda su vida.", + "author": "Lao Tsé" + }, + { + "quote": "Vale más actuar exponiéndose a arrepentirse de ello, que arrepentirse de no haber hecho nada.", + "author": "Giovanni Boccaccio" + }, + { + "quote": "Ningún hombre es lo bastante bueno para gobernar a otros sin su consentimiento.", + "author": "Abraham Lincoln" + }, + { + "quote": "Todo lo que se come sin necesidad se roba al estómago de los pobres.", + "author": "Mahatma Gandhi" + }, + { + "quote": "Vivir sola es como estar en una fiesta donde nadie te hace caso.", + "author": "Marilyn Monroe" + }, + { + "quote": "El cuerpo humano es el carruaje; el yo, el hombre que lo conduce; el pensamiento son las riendas, y los sentimientos, los caballos.", + "author": "Platón" + }, + { + "quote": "Estar preparado es importante, saber esperarlo es aún más, pero aprovechar el momento adecuado es la clave de la vida.", + "author": "Arthur Schnitzler" + }, + { + "quote": "No estoy tan enamorado de mis propias opiniones que ignore lo que los demás puedan pensar acerca de ellas.", + "author": "Copérnico" + }, + { + "quote": "La más estricta justicia no creo que sea siempre la mejor política.", + "author": "Abraham Lincoln" + }, + { + "quote": "El sabio no dice nunca todo lo que piensa, pero siempre piensa todo lo que dice.", + "author": "Aristóteles" + }, + { + "quote": "Hay dos cosas que son infinitas: el universo y la estupidez humana; de la primera no estoy muy seguro.", + "author": "Albert Einstein" + }, + { + "quote": "El nacimiento y la muerte no son dos estados distintos, sino dos aspectos del mismo estado.", + "author": "Mahatma Gandhi" + }, + { + "quote": "Lo que importa verdaderamente en la vida no son los objetivos que nos marcamos, sino los caminos que seguimos para lograrlo.", + "author": "Peter Bamm" + }, + { + "quote": "El mundo es bello, pero tiene un defecto llamado hombre.", + "author": "Friedrich Nietzsche" + }, + { + "quote": "La pereza viaja tan despacio que la pobreza no tarda en alcanzarla.", + "author": "Benjamin Franklin" + }, + { + "quote": "Una velada en que todos los presentes estén absolutamente de acuerdo es una velada perdida.", + "author": "Albert Einstein" + }, + { + "quote": "Pienso, luego existo.", + "author": "René Descartes" + }, + { + "quote": "Lo que no te mata, te hace más fuerte.", + "author": "Friedrich Nietzsche" + }, + { + "quote": "No abras los labios si no estás seguro de que lo que vas a decir es más hermoso que el silencio.", + "author": "Proverbio árabe" + }, + { + "quote": "De todos los animales de la creación el hombre es el único que bebe sin tener sed, come sin tener hambre y habla sin tener nada que decir.", + "author": "John Steinbeck" + }, + { + "quote": "La esperanza es un estimulante vital muy superior a la suerte.", + "author": "Friedrich Nietzsche" + }, + { + "quote": "Un hermano puede no ser un amigo, pero un amigo será siempre un hermano.", + "author": "Benjamin Franklin" + }, + { + "quote": "Sólo puede ser feliz siempre el que sepa ser feliz con todo.", + "author": "Confucio" + }, + { + "quote": "Ninguna persona merece tus lágrimas, y quien se las merezca no te hará llorar.", + "author": "Gabriel García Márquez" + }, + { + "quote": "De humanos es errar y de necios permanecer en el error.", + "author": "Marco Tulio Cicerón" + }, + { + "quote": "Algunas personas son tan falsas que ya no distinguen que lo que piensan es justamente lo contrario de lo que dicen.", + "author": "Marcel Aymé" + }, + { + "quote": "La verdadera sabiduría está en reconocer la propia ignorancia.", + "author": "Sócrates" + }, + { + "quote": "La peor experiencia es la mejor maestra.", + "author": "Kovo" + }, + { + "quote": "La Educación es el pasaporte hacia el futuro, el mañana pertenece a aquellos que se preparan para él en el día de hoy.", + "author": "Malcolm X" + }, + { + "quote": "Los amigos se convierten con frecuencia en ladrones de nuestro tiempo.", + "author": "Platón" + }, + { + "quote": "No permitas que ningún ser humano te haga caer tan bajo como para odiarle.", + "author": "Martin Luther King" + }, + { + "quote": "El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.", + "author": "William George Ward" + }, + { + "quote": "Un amigo de todos es una amigo de nadie.", + "author": "Aristóteles" + }, + { + "quote": "Hace falta toda una vida para aprender a vivir.", + "author": "Séneca" + }, + { + "quote": "Son dolor no hay resultado.", + "author": "Benjamin Franklin" + }, + { + "quote": "Estos son mis principios y si no te gustan, tengo otros.", + "author": "Groucho Marx" + }, + { + "quote": "La política es el arte de buscar problemas, encontrarlos, realizar un diagnóstico falso y aplicar después remedios equivocados.", + "author": "Groucho Marx" + }, + { + "quote": "Los verdaderos líderes deben estar dispuestos a sacrificarlo todo por la libertad de su pueblo.", + "author": "Nelson Mandela" + }, + { + "quote": "Es mejor permanecer callado y parecer tonto que hablar y despejar las dudas definitivamente.", + "author": "Groucho Marx" + }, + { + "quote": "Aquel que más posee, más miedo tiene de perderlo.", + "author": "Leonardo Da Vinci" + }, + { + "quote": "La inspiración existe, pero tiene que encontrarte trabajando.", + "author": "Pablo Picasso" + }, + { + "quote": "Incluso la gente que afirma que no podemos hacer nada para cambiar nuestro destino, mira antes de cruzar la calle.", + "author": "Stephen Hawking" + }, + { + "quote": "Ojo por ojo y el mundo acabará ciego.", + "author": "Mahatma Gandhi" + }, + { + "quote": "Vive como si fueras a morir mañana; aprende como si el mundo fuera a durar para siempre.", + "author": "Mahatma Gandhi" + }, + { + "quote": "Solo sé que no sé nada.", + "author": "Sócrates" + }, + { + "quote": "Nunca rompas el silencio si no es para mejorarlo.", + "author": "Ludwig van Beethoven" + }, + { + "quote": "Puedes engañar a todo el mundo algún tiempo. Puedes engañar a algunos todo el tiempo. Pero no puedes engañar a todo el mundo todo el tiempo.", + "author": "Abraham Lincoln" + }, + { + "quote": "La mejor manera de librarse de la tentación es caer en ella.", + "author": "Oscar Wilde" + }, + { + "quote": "La duda es la madre de la invención.", + "author": "Galileo Galilei" + }, + { + "quote": "Podrán cortar todas las flores, pero no podrán detener la primavera.", + "author": "Pablo Neruda" + }, + { + "quote": "Es tan corto el amor y tan largo el olvido.", + "author": "Pablo Neruda" + }, + { + "quote": "Uno llega a ser grande por lo que lee y no por lo que escribe.", + "author": "Jorge Luis Borges" + }, + { + "quote": "Uno es dueño de lo que calla y esclavo de lo que habla.", + "author": "Sigmund Freud" + }, + { + "quote": "El único hombre que no se equivoca es el que nunca hace nada.", + "author": "Goethe" + }, + { + "quote": "Vale más hacer y arrepentirse, que no hacer y arrepentirse.", + "author": "Maquiavelo" + }, + { + "quote": "Si quieres cambiar al mundo, cámbiate a ti mismo.", + "author": "Mahatma Gandhi" + }, + { + "quote": "Un amigo fiel es un alma en dos cuerpos.", + "author": "Aristóteles" + }, + { + "quote": "La vida no es sino una continua sucesión de oportunidades para sobrevivir.", + "author": "Gabriel García Márquez" + }, + { + "quote": "Se necesita poco para hacer las cosas bien, pero menos aún para hacerlas mal.", + "author": "Paul Bocuse" + }, + { + "quote": "Con veinte años todos tienen el rostro que Dios les ha dado; con cuarenta el rostro que les ha dado la vida y con sesenta el que se merecen.", + "author": "Albert Schweitzer" + }, + { + "quote": "El amor no tiene cura, pero es la única medicina para todos los males.", + "author": "Konrad Adenauer" + }, + { + "quote": "No hay camino para la verdad, la verdad es el camino.", + "author": "Mahatma Gandhi" + }, + { + "quote": "El éxito tiene muchos padres, pero el fracaso es huérfano.", + "author": "John Fitzgerald Kennedy" + }, + { + "quote": "Quien no haya sufrido lo que yo, que no me de consejos.", + "author": "Sófocles" + }, + { + "quote": "La vida es un diez por ciento como la hacemos y un noventa por ciento como la tomamos.", + "author": "Irving Berlín" + }, + { + "quote": "El hombre que más ha vivido no es aquél que más años ha cumplido, sino aquel que más ha experimentado la vida.", + "author": "Jean Jacques Rousseau" + }, + { + "quote": "En los momentos de crisis, solo la imaginación es más importante que el conocimiento.", + "author": "Albert Einstein" + }, + { + "quote": "Nuestros hijos no tendrán tiempo para discutir sobre el cambio climático. Solo podrán convivir con sus efectos.", + "author": "Barack Obama" + }, + { + "quote": "Si quieres cambiar el mundo, toma tu pluma y escribe.", + "author": "Martín Lutero" + }, + { + "quote": "Hay verdades que no son para todos los hombres, ni para todos los tiempos.", + "author": "Voltaire" + }, + { + "quote": "Sé el cambio que quieres ver en el mundo.", + "author": "Mahatma Gandhi" + }, + { + "quote": "La raíz del sufrimiento es el apego.", + "author": "Buda" + }, + { + "quote": "La religión es el opio del pueblo.", + "author": "Karl Marx" + }, + { + "quote": "Hay dos clases de hombres: quienes hacen la historia y quienes la padecen.", + "author": "Camilo José Cela" + }, + { + "quote": "La verdad es siempre revolucionaria.", + "author": "Vladimir Lenin" + }, + { + "quote": "La peor lucha es la que no se hace.", + "author": "Karl Marx" + }, + { + "quote": "Vence la ira con serenidad. Vence la maldad con bondad. Vence el egoísmo con generosidad. Vence la deshonestidad con verdad.", + "author": "Buda" + }, + { + "quote": "Hay dos maneras de vivir su vida: una como si nada es un milagro, la otra es como si todo es un milagro.", + "author": "Albert Einstein" + }, + { + "quote": "La historia se repite, ese es uno de los errores de la historia.", + "author": "Charles Darwin" + }, + { + "quote": "La felicidad se alcanza cuando lo que uno piensa, lo que uno dice y lo que uno hace están en armonía.", + "author": "Mahatma Gandhi" + }, + { + "quote": "Los pecados escriben la historia, el bien es silencioso.", + "author": "Goethe" + } + ] + diff --git a/quotes/spanish.json b/quotes/spanish.json deleted file mode 100644 index a48668f..0000000 --- a/quotes/spanish.json +++ /dev/null @@ -1,5 +0,0 @@ -[ - {"quote": "La pluma es la lengua del alma.", "author": "Miguel de Cervantes"}, - {"quote": "Todos los niños nacen artistas. El problema es cómo seguir siendo artistas al crecer.", "author": "Pablo Picasso"}, - {"quote": "No puedo cambiar la dirección del viento, pero sí ajustar mis velas para llegar a mi destino.", "author":"Jimmy Dean" } -] diff --git a/voices.txt b/voices.txt new file mode 100644 index 0000000..367bc67 --- /dev/null +++ b/voices.txt @@ -0,0 +1,705 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +