Chers lecteurs, aujourd'hui, je vais parler d'un scénario de journal que j'ai en quelque sorte écrit. ?
Le problème que j'essaie de résoudre est que je veux sauvegarder mes pensées.
Je n’ai aucun problème à lire ce que j’ai écrit, mais je n’aime pas attendre. Je peux dicter, mais je ne veux pas enregistrer ni écouter ma voix.
Chaque fois que je rencontre une telle situation, je passe en mode ingénierie, et si c'est quelque chose que je peux aborder en quelques heures de travail, je me lance.
Tout d’abord, j’ai recherché une bibliothèque voix-texte facile à utiliser et j’ai trouvé Vosk. Il possède une énorme bibliothèque de modèles. J'ai opté pour deux petits car je souhaite utiliser l'application pendant que je code. Ils donnent des résultats assez corrects.
Puis, grâce à la magie de plusieurs modèles d'IA, je suis arrivé à une solution en Python. Il diffuse le son de mon microphone et de mon système sur le modèle Vosk, qui fournit une transcription écrite avec des horodatages dans un fichier avec la date actuelle.
Cela fait l’affaire, mais ce n’est pas pratique pour un usage quotidien. Une de mes devises est : si ce n’est pas facile et instantané, je ne l’utiliserai pas. J'ai donc emballé le script dans un module Python et écrit un fichier *.desktop pour l'enregistrer en tant qu'application Linux standard dans mon cas, Pop!_OS.
Il suffit d'une petite touche supplémentaire pour ajouter un raccourci clavier et voici le miracle que cela fonctionne !
Les notifications utilisant notify-send sont là pour vous informer de l'état actuel de l'application.
Une chose qui m'énerve, c'est lorsqu'une application s'exécute dans la console car elle encombre mon espace de travail. Pour éviter cela, j'avais besoin d'un moyen simple de démarrer et d'arrêter l'application sans dépendre du terminal. Ma solution était d'implémenter un système de fichiers verrouillé.
Lorsque l'application démarre, elle crée un fichier de verrouillage contenant son ID de processus (PID). Si le verrou existe déjà, le script l'utilise pour envoyer un signal KeyboardInterrupt afin d'arrêter l'instance en cours d'exécution et se termine. De cette façon, le premier appel démarre l'application et commence la transcription, tandis que le deuxième appel l'arrête.
J'espère que cet article a suscité le désir de quelqu'un de résoudre son propre problème d'une manière unique, inventive et quelque peu raffinée.
N'hésitez pas à consulter mon autre article similaire :
Automatisation de l'extraction de texte à partir de captures d'écran
N'hésitez pas également à consulter le code :
sur Github
Passez une bonne journée ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!