pip install audio-helper
Trois questions décident si une brique entre dans votre contrainte ; les réponses sont mesurées sur le code plutôt que proclamées. Elles sont énoncées ici une fois pour que vous n'ayez pas à lire dix-sept fichiers README pour les trouver.
Seize des dix-sept ne contactent jamais de service payant. Elles tournent sur votre machine avec des outils libres : pas de compte, pas de clé d'API, pas de facturation au caractère ni au jeton. Là où un modèle intervient, les poids se téléchargent une fois ; le travail est ensuite hors ligne.
Deux d'entre elles joignent bien un serveur distant ; la distinction compte. bucket-helper et sftp-helper parlent à des stockages puis à des serveurs qui sont les vôtres — un bucket S3, une machine où vous avez un compte. C'est votre infrastructure, pas un tarif de tiers ; tout leur métier consiste à déplacer des données vers un endroit que vous avez choisi.
best-engine-ai-helper est la seule qui puisse appeler un service payant
dans le nuage ; encore faut-il le lui demander. Son chemin par défaut est
le modèle local. Un fournisseur distant n'est joint que si vous nommez un moteur
déclarant un champ api_key_env et que vous renseignez cette
variable d'environnement ; la clé est lue dans l'environnement au moment de
l'appel, jamais écrite sur le disque. Le chemin payant existe donc : il est
explicitement choisi, à un geste de distance — jamais un défaut qui vous facture
par surprise.
Le traitement par lots et le streaming sont deux objectifs distincts, pas deux crans d'un même réglage. Le travail hors ligne n'a pas d'échéance : la qualité est alors la seule chose à maximiser. Le temps réel a une frontière de faisabilité dure : le moteur doit produire plus vite que la lecture ne consomme, soit un facteur temps réel inférieur à 1 — et inférieur à 0,8 environ dès qu'on garde une marge pour le premier bloc puis pour la gigue.
Les briques qui diffusent vraiment, vérifiées sur la forme de leur API publique
plutôt que sur leur prose :
capture-helper (iter_camera_frames,
iter_mic_audio), podcast-helper
(extract_audio_stream), video-helper
(extract_frames, iter_frame_optical_flow),
speaker-helper (Speaker.stream) puis
vocal-helper (Pipeline.run, en direct, à côté d'un
OfflinePipeline qui est explicitement le jumeau par lots).
discussion-helper est temps réel par construction — c'est une
boucle de conversation — et pilote ces deux-là plutôt que de diffuser elle-même.
C'est dans speaker-helper que les deux objectifs divergent visiblement ;
son routeur choisit selon la condition au lieu de prétendre qu'un moteur gagne
les deux. Pour le streaming il retient kokoro, le seul moteur dont le
facteur temps réel est mesuré sous le plafond : le routeur refuse d'affirmer
qu'un moteur tient la cadence s'il n'a jamais été chronométré. Les deux moitiés
de ce choix ne viennent pas du même endroit ; le routeur consigne laquelle il a
retenue. La vitesse est chronométrée sur votre machine ; la qualité, elle, est
classée par un public_elo — un score d'arène de préférence humaine
mesuré ailleurs, par d'autres, parce qu'une préférence n'est pas une chose qu'un
ordinateur portable mesure. Pour le hors ligne, où la vitesse est entièrement
ignorée, il retient kyutai en français puis chatterbox en
anglais, classés sur le prior du moteur plutôt que sur une arène. Tout
le reste de la suite travaille par lots, ce qui n'est pas une limite mais la forme
honnête de la conversion d'un fichier.
L'essentiel de la suite est indifférent à la langue : rééchantillonner un WAV, compresser une vidéo ou hacher un dossier ne regarde pas quelle langue se trouve dans le fichier. La langue ne devient un vrai paramètre que là où le sens intervient ; les briques disent alors lesquelles elles couvrent plutôt que de laisser croire qu'elles les couvrent toutes.
vocal-helper identifie la langue qu'elle entend puis la transcrit ; speaker-helper livre une voix féminine par défaut pour chaque langue puis route par langue, avec le français et l'anglais comme paire mesurée, un moteur multilingue derrière les autres ; discussion-helper hérite des deux. md2star localise les documents qu'elle produit — le titre de la bibliographie suit la langue du document. standpoint rédige son analyse en français ou en anglais. Tout ce qui est visible par l'utilisateur dans la suite existe dans les deux langues ; c'est pourquoi chaque page d'ici a son jumeau anglais.
Utilitaires multiplateformes de fichiers, de système, de hachage, de configuration puis de chronométrage — le socle sur lequel toutes les autres briques se construisent.
Charger, convertir, découper puis concaténer de l'audio ; séparation de sources en option.
PCM en direct → détection d'activité vocale → diarisation en ligne → reconnaissance de la parole → résumé par LLM en option.
Synthèse vocale dans votre propre processus : dire une phrase, diffuser une réponse à mesure qu'elle s'écrit, narrer un document avec la piste minutée qui permet à une page de suivre. Tous les moteurs sont locaux puis gratuits — aucune clé d'API, aucune facturation au caractère, hors ligne dès les poids posés. Le routeur choisit selon la condition : le streaming privilégie la vitesse (kokoro, RTF sous 0,8), le hors ligne privilégie la qualité (kyutai en français, chatterbox en anglais). Un lexique de prononciation énonce une fois comment un mot se dit. L'inverse de vocal-helper : du texte entre, de la parole sort.
Tenir une conversation parlée au microphone : écouter, répondre, parler — puis s'arrêter dès que l'utilisateur coupe. La boucle qui sait à qui est le tour.
Conversion de vidéo, manipulation puis extraction d'images.
Capture de caméra puis de microphone, derrière une interface de flux uniforme.
Acquisition de médias par yt-dlp — télécharger puis diffuser depuis YouTube et des centaines d'autres sites.
Consommateur universel de flux audio.
Stockage objet compatible S3 : envoi, réception, miroir puis les motifs de dépôt-et-partage.
SFTP : envoi, réception, miroir.
Pont Markdown → DOCX/PPTX/PDF bâti sur Pandoc, avec gabarits soignés, rendu Mermaid puis gestion de la bibliographie.
Ne jamais relancer deux fois le même appel coûteux : mémoïsation persistante adressée par contenu, plus un vol unique. Une boîte à outils, proche d'esprit d'os-helper.
Transformer un tableau comparatif en carte de positionnement 2D étiquetée, une analyse rédigée puis un YAML de coordonnées — cartes perceptuelles par ACP, en une commande.
Choisir puis récupérer le meilleur LLM ou VLM local pour la machine du moment — sélection de modèle attentive à la mémoire, au-dessus d'Ollama.
Router vers le bon moteur de plus proches voisins approchés (exact/turbovec/HNSW/FAISS/Annoy/Qdrant/pgvector) depuis des critères mesurés, avec une justification discutable.
Détection de coude robuste au bruit : rend un coude avec son incertitude ; ou s'abstient explicitement plutôt que de deviner.
Généré avec Sphinx (autodoc + napoleon, thème Read the Docs) depuis les docstrings NumPy de chaque paquet.