Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

7 - Développer/Traduire/Documenter/Annoncer une application

Dernier post
Page : 1/2   -   Aller directement à la page : 1  2 

Signal audio sur carte son

temps utilisateur non connecté
Bonjour,
J'utilise depuis des années audacity et kino sous ubuntu et debian pour mes montages. Dernièrement, j'ai écris un bash qui permet des cours d'autoformation ou des examen en ligne, de manière à améliorer ce bash j'ai pour projet de construire une bibliothèque de reconnaissance vocale construite sur Shtooka . Mais pour ce faire j'ai besoin de savoir comment fonctionne une carte son, de manière à pouvoir récupérer un signal brut avant et après échantillonnage.
Cordialement

olinuxx utilisateur non connecté France
Bonjour temps,

Ton projet semble intéressant !

Concernant le fonctionnement d'une carte son, elles ne fonctionnent pas toutes de la même façon (sinon, ça ne serait pas drôle wink ).

Dis nous plus précisément ce dont tu as besoin. Est-ce de récupérer le signal brut avant échantillonnage par la carte ? Si oui, je ne suis pas certains que ce soit possible par voie informatique, peut être avec certaines cartes... Bref, plus de précision sont requises.

Olivier

temps utilisateur non connecté
Merci Olivier pour la réponse. Dans la mesure ou ma démarche est d'obtenir à la fin un paquet compatible à l'aide de cette information, je sais déjà que je vais devoir commencer sur un signal échantillonné. Pour détailler mon raisonnement, je suis un régleur (maitre en régulation) qui a été formé sur le terrain, loin des dogmes des enseignement institutionnels. De cet enseignement je vois deux démarches possibles ou bien même un mélange de ces deux démarches. La première possibilité est, le mieux est l'ennemie du bien d'ou une identification de chaque forme d'onde utile pour composer les mots utilisés dans un domaine de reconnaissance vocale précis (ceci construit sur le projet Shtooka). Dans cette démarche, débutant en MAO, je suis à la recherche d'informations sur la composition des fichiers de manière à ce que je puisse créer un comparateur à temps réel et un lecteur à temps réel. La deuxième démarche est aussi issue de mon expérience professionnelle qui m'a appris que nous ne pouvions pas modéliser avec l'algèbre dès que le facteur temps intervenait et qui utilise une modélisation mathématique que j'ai mise au point. Cette technique permet de décrire une onde complète avec très peu d'information (la hauteur de la crète + un nombre sans dimension + le nombre de fois ou elle se répète (la dernière valeur n'étant pas fixe pour le comparateur de reconnaissance vocale). Donc très peu d'informations comparé à une multitudes de points de l'échantillonnage. Le format finale que j'ai prévu en licence by sera selon les participant aux projet sous licence GNU linux. Je placerai l'avancement des travaux sur le site du constructeur d'exercice déja existant.
Amicalement

jy_moustache utilisateur non connecté
vu ce que tu décris, tu semble utiliser une nouvelle technique de reco vocale avec une feature extraction maison (extraction des caractéristiques), plutôt éloignée des cepstres et autres analyses fréquentielles classiques.

tu comptes rajouter un modèle de Markov derrière ou pas ? Programmation dynamique ?

Autre chose, comment as-tu envisagé l'apprentissage de ton modèle ? est-ce un modèle avec apprentissage non supervisé ? As-tu déjà un corpus d'apprentissage ? C'est pas forcément évident à trouver et sinon ça coute super cher.

Pour répondre à ta question :
  • pour récupérer le signal après échantillonnage, tu peux utiliser l'API du driver ALSA ou du serveur son JACK. c'est plutot simple.
  • pour récupérer le signal avant échantillonnage, à par faire une soudure sur ta carte son je vois pas ou alors récuperer le signal directement en sortie du micro. cry L'échantillonnage est vraiment la toute premiète étape d'un processus audio numérique. De plus tu ne peux pas avoir accès au signal analogique dans le PC puisque par définition tout y est .... numérique donc échantillonné. Va voir le dossier son pour plus d'infos à ce sujet.

pour avoir travaillé dessus, la reconnaissance vocale est un domaine assez sensible et difficle. Chapeau de t'y attaquer de manière non professionnelle !!

jy

temps utilisateur non connecté
{QUOTE(replyto=>jy_moustache)}
Merci pour la réponse je pars sur les api voir comment elles réagissent. Je ne vais pas utiliser un des modèle de Markov bien que ceux-ci ne répondent pas aux lois de l'algèbre, elles ne trouvent pas actuellement de place dans ma démarche première. Je vais dans un premier temps identifier avec ma méthode des mots de base pour créer la bibliothèque puis ensuite créer mon encodeur/décodeur. Comme professionnel vous devez avoir l'habitude des signaux, donc prenons le cas d'un exemple, le terme bonjour, nous nous apercevons qu'il peut être codé à l'aide de cinq courbes sachant que la courbe spécifique du son "ou" peut aussi servir à d'autre terme. Je reviens posté dès que j'ai une petite bibliothèque avec quelques termes courant "oui", "non" "bonjour" ...
Amicalement

olinuxx utilisateur non connecté France
temps écrit :
tu peux utiliser l'API du driver ALSA ou du serveur son JACK.

Exact, je dirai ALSA à moins que tu n'es besoin de traiter du signal en temps réel.
Pourquoi ALSA ?
Parce que de toute façon, JACK utilise les pilotes audio ALSA pour parler à ta carte son.
Tiens nous au jus,
il est super ton projet !
Olivier

Samuel utilisateur non connecté Allemagne
Salut,

je ne sais pas si ça aide, mais le projet voxforge propose des enregistrements GPL à des fins de reconnaissance vocale.
D'ailleurs c'est un projet qui a grandement besoin qu'on le soutienne en enregistrant des textes afin d'agrandir le corpus.

temps utilisateur non connecté
Merci pour l'information, mais le projet Shtooka me semble plus adapté par rapport aux données. Sur les licences est-ce que quelqu'un comprend la différence entre voxforge et Shtooka ?
Au sujet du projet de modélisation des voix humaines, j'ai écris l'analyseur en java mais je dois résoudre un problème encore pour restituer le son. Cela provient de la technique utilisée dans mon programme aussi écrit en java, mon générateur modifie la forme de la courbe.

temps utilisateur non connecté
temps écrit :
Merci pour l'information, mais le projet Shtooka me semble plus adapté par rapport aux données. Sur les licences est-ce que quelqu'un comprend la différence entre voxforge et Shtooka ?
Au sujet du projet de modélisation des voix humaines, j'ai écris l'analyseur en java mais je dois résoudre un problème encore pour restituer le son. Cela provient de la technique utilisée dans mon programme aussi écrit en java, mon générateur modifie la forme de la courbe.

Est-ce que quelqu'un a un script java qui tienne la route pour générer des ondes composées ? Actuellement le mien a deux gros problèmes, le premier c'est une dérive de plus de 10 % entre la fréquence que j'indique et celle jouée, la deuxième c'est une perte des premières ondes même si elles ne sont pas audible cela me gène dans la construction.
Cordialement

temps utilisateur non connecté
Bonjour,
C'est fait j'ai lancé mon projet audio. L'extension de mon format est "jo" en exemple "musique.jo" ou paroles.jo". Le format de musique jo, veut dire que le fichier est un fichier son en mode texte écrit en java. En d'autres termes, le lecteur de fichiers au format jo est tout simplement un lanceur java. J'ai commencé à faire quelques petits tutoriaux pour expliquer comment créer sa musique sous le format jo et je suis entrain de recueillir des informations afin de créer mon encodeur au format jo.
Des exemples, sont ici sur la chaine 9temps de youtube, quand j'aurai plus d'informations, je les placeraient sur le serveur.
Etape futur créer une carte sont qui traduit directement l'analogique, mais c'est pas encore.
Il est à noté qu'un fichier de son pure de 30 secondes en java pèse quelques octets alors que sous les autres formats cela se compte en Mo, c'est exactement l'effet que je cherchais de manière à pouvoir créer mon système de reconnaissance vocale.
Cordialement

jy_moustache utilisateur non connecté
salut

j'ai regardé les vidéos.
y'a des choses que je pige pas dans ton projet. je comprends bien la problématique de la place que prenne tous les échantillons, que tu veux réduire la quantité d'information pour faire la reco vocale etc....
je trouve d'ailleurs que ce n'est pas une mauvaise idée et que ça pourrait marcher.

aujourd'hui la reco vocale extrait des informations du domaine fréquentiel (sur des fenetres glissantes). toi ce que tu cherches à faire, c'est de ne pas rentrer dans le domaine fréquentiel mais de rester dans le domaine temporel.

du coup ça pose quelques questions :
  • pour 2 périodes de signal successives qui se ressemblent, 2 "formes d'onde", comment comptes-tu les caractériser ? par quel moyen pourras-tu dire qu'il s'agit de la même "forme d'onde" ? Auras-tu des formes d'onde de référence auquelle tu pourras comparer ? comment vas-tu faire une comparaison qui sera robuste au bruit ?

  • si tu dis "bonjour" d'une voie grave et d'une voie aigüe, le premier enregistrement montrera des "formes ondes" identique à la seconde mais elles seront plus longues (fréquence plus grave donc période plus grande). de quelle manière pourras-tu dire qu'il s'agit de la même forme d'onde mais ralentie ou accélérée ?

  • tu dis qu'aujourd'hui la reco vocale s'appuie sur des enregistrement à 41kHz de freq d'échantillonnage. ce n'est pas vrai. les gens du métier savent bien que ça ne sert à rien d'échantillonner aussi haut car l'information importante se trouve à des fréquences inférieures. ce qui est confirmé par le fait qu'on fait de la reco vocale par téléphone qui lui n'est pas échantilloné à 41khZ mais bien plus bas.

  • dernière question et non des moindres. à qui va s'adresser ton logiciel et sur quel support (téléphone, pc, etc) ? ca va forcément impacter ta méthode.

jy

temps utilisateur non connecté
jy_moustache écrit :
salut

aujourd'hui la reco vocale extrait des informations du domaine fréquentiel (sur des fenetres glissantes). toi ce que tu cherches à faire, c'est de ne pas rentrer dans le domaine fréquentiel mais de rester dans le domaine temporel.

du coup ça pose quelques questions :
*pour 2 périodes de signal successives qui se ressemblent, 2 "formes d'onde", comment comptes-tu les caractériser ? par quel moyen pourras-tu dire qu'il s'agit de la même "forme d'onde" ? Auras-tu des formes d'onde de référence auquelle tu pourras comparer ? comment vas-tu faire une comparaison qui sera robuste au bruit ?

*si tu dis "bonjour" d'une voie grave et d'une voie aigüe, le premier enregistrement montrera des "formes ondes" identique à la seconde mais elles seront plus longues (fréquence plus grave donc période plus grande). de quelle manière pourras-tu dire qu'il s'agit de la même forme d'onde mais ralentie ou accélérée ?

*tu dis qu'aujourd'hui la reco vocale s'appuie sur des enregistrement à 41kHz de freq d'échantillonnage. ce n'est pas vrai. les gens du métier savent bien que ça ne sert à rien d'échantillonner aussi haut car l'information importante se trouve à des fréquences inférieures. ce qui est confirmé par le fait qu'on fait de la reco vocale par téléphone qui lui n'est pas échantilloné à 41khZ mais bien plus bas.

*dernière question et non des moindres. à qui va s'adresser ton logiciel et sur quel support (téléphone, pc, etc) ? ca va forcément impacter ta méthode.

jy


Je vais essayer de répondre aux questions dans l'ordre. Mais puisque tu t'es donné la peine de regarder, je vais t'en donner un peu plus que ce que je montre dans les vidéos. Nous ne pouvons pas modéliser de nombreux sons avec les fonctions sin ou cos nous devons utiliser des formules comme fonction de base de ce type : return (A * Math.exp(A * t ) - B * Math.exp(B * t ))/(A - B-) ;
Première réponde : Pour moi deux signaux identiques donnent une boucle à 1, il faut bien comprendre que si je me suis lancé dans le projet, c'est parce que depuis 1993 j'ai créé mon propre système mathématique, que depuis 1 mois je me suis mis à java, ce qui m'a permis de créer mon logiciel de modélisation. Deux jours après sa création, j'ai pensé à l'appliquer sur les sons le domaine dans lequel je travaille aujourd'hui. En fait c'est parce que je peux modéliser les variations que je peux transformer les fichiers audio en fichier texte. En d'autres mots, nul besoin de bibliothèque. Les fréquences, importent peu puisque je travaille sur la forme des variations, Il faudra tout de même que je filtre les problèmes de bruit, mais comme le projet débute au début sur la reconnaissance vocale, cela sera assez facile je pense. Ensuite au sujet des 41Khz Je pensais travailler à une fréquence plus basse indiquée sur une des vidéo. Le choix premier de java est induit par le fait que j'ai écris mon analyseur de courbe en java et pour sa portabilité. Mais comme ceci est destiné principalement à une licence linux, rien ne contredis le fais qu'il apparaisse un équivalent en bash pour moi ou autre langage. Ma démarche reste dans l'esprit linux, dire les choses le plus facilement même quand certains nous les présentent comme complexes.
Amicalement

temps utilisateur non connecté
En plus simple, le format audio jo crée des fichiers son en mode texte. Dans ce mode texte nous trouvons les consignes déduites des formes de variations particulières qui créent les son. L'analyseur analyse chaque courbe quand elle arrive à son point culminant, puis compare comment les courbes varient entre elles. Ensuite plus tard une bibliothèque contenant les son caractéristiques de la langue française sera introduite.
Peut importe la variation de fréquence entre l'homme ou l'enfant, que l'harmonique du haut donnant le timbre indique une maladie des cordes vocales ou un accent, ce qui comtpe c'est la forme des variations et les harmonique du corps qui nous indiquent la lettre prononcée. Ceux qui doutent n'ont qu'à prendre un cycle d'un son et le multiplier, ils verront bien qu'il n'obtiennent pas le son, car dans ce cas il manquera le plus important dans un son.

temps utilisateur non connecté
Comme je l'ai dis au départ, je débute en Débuter - la MAO, mais mon métier de base c'est régleur. L'art de modéliser les phénomènes physiques. Mais même sans cet art, nous pouvons observer que le plus important dans un son, ce n'est pas la fréquence, ce n'est pas son intensité, c'est un phénomène de vitesse et de valeur critique (en exemple coup de bélier avec ce bruit sourd). Trop de vitesse dans un tuyaux d'eau et voila un bruit, trop de vitesse d'air et voila un bruit, .. Ainsi c'est la forme de la variation qu'il faut analyser dans un son car sa particularité est la variation des associations (intensité fréquences). Observons le spectre de la parole humaine, nous voyons bien qu'un gain en intensité influe sur les fréquences pour garder le même son et une baisse des intensité influe sur les fréquences de manière à garder le même rapport. Je me demande bien comment sans tenir compte de cela il puisse exister de la reconnaissance vocale ?

olinuxx utilisateur non connecté France
Fil super intéressant, on y apprend beaucoup de chose !
Êtes-vous nombreux dans ton métier ?

a+
Olivier

jy_moustache utilisateur non connecté
désolé temps, mais j'ai beau relire plusieurs fois tes messages, je ne comprends pas ce que tu essayes de dire (d'autant plus que je ne suis pas toujours d'accord avec toi). biggrin
bref, je te laisse faire ta sauce et préviens nous quand ça marchera, je serai intéressé par voir comment tu fais
je pense qu'il y a un certain nombre de problèmes que tu n'as pas encore abordés et qui sont loin d'être triviaux...
bon courage et n'hésite pas à poser des questions !! wink

a plus

jy

temps utilisateur non connecté
Merci pour les avis, ceux qui ont regardé les vidéos savent qu'il est possible de produire déja pas mal de chose en fichier texte. J'indique dans les vidéo quelques lois pour créer. Puisqu'il est proposé de poser des questions, j'en profite. Voila sous java je construit la forme de la courbe avec : javax.sound.sampled.SourceDataLine; comme il est expliqué plus haut dans ma technique de modélisation l'amplitude a une grande importance (c'est le chiffre que je place avant la formule de la courbe pour ceux qui ont regardé les vidéos). Mais voila impossible de faire un boucle dans cette classe ! impossible de faire une multiplication ou addition en utilisant mon terme "onde1" car ce terme représente une forme de courbe et non pas le simple double qu'il donne en sortie. J'ai deux solutions, créer une forme d'onde pour chaque amplitude soit 17 formes , soit jouer sur les interférences comme je le fait dans une de mes démos. Mais aucune de ces deux solutions me plait vraiment, est-ce que quelqu'un connais une solution en java qui me permette de faire varier l'amplitude de l'onde tout en gardant la forme de la courbe ?

temps utilisateur non connecté
Mon projet avance, le décodeur m'indique bien les vitesses et donc je peux écrire les sons en mode texte, le problème reste le lecteur. Ceux qui ont regardé les vidéos savent déja qu'il est possible de créer de la musique avec mon script, même des sons nouveaux pour les accros de techno. J'ai testé sur quelques voyelles avec succès mais bien que le script soit en java, il n'est pas vraiment portable. En exemple un son pur sur la voyelle O" ressort en grésillement sur un processeur "I7" ou encore selon la qualité du processeur un fond métallique apparait car les ondes avec de l'amplitude saturent et sont tronquées en haut perdant par la même la variation produisant le son.
Je suis toujours à la recherche d'un début de solution sous un autre langage.
Cordialement

temps utilisateur non connecté
Mon projet prend forme, mon système mathématique décode, mon player sous java fonctionne, je vais commencer la création de mots entiers. Dans la mesure ou mon système mathématique modélise et qu'il est totalement incompatible avec l'algèbre, je me demande comment ceux qui utilise l'algèbre arrivent à modéliser ? et dans la mesure ou java travaille que sur une seule fréquence, je me demande comment ceux qui font varier les fréquences arrivent à modéliser car cela ajoute au moins une intégration par variation ?
Je suis toujours à la recherche d'un langage plus portable pour écrire mes fichiers sons.
Cordialement

olinuxx utilisateur non connecté France
Cool de nous tenir au courant
Faudra voir ça quand tu aura un truc stable
a+
Olivier

temps utilisateur non connecté
Je pense avoir un truc stable, puisque depuis vendredi je recrute les intervenants du projet. J'indique plusieurs code sources sur comment fonctionne le player en java sur mon site, j'indique le concept et même quelle est la différence entre le son O et le son A dans cette vidéo http://www.youtube.com/watch?v=Z1seNfENq6w .
En d'autres mots, les taches qu'il me restent sont :
Rendre mon décodeur compatible avec le player, ce n'est que de la gestion de fichiers java et intégrer dans mon player java l'effet "phaser" pour corriger les défauts des processeurs sauf pour les I7 car ceux-ci sont une cause perdue.

Page : 1/2  [Suivant]
1  2 
Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

sub26nico, 02:01, dim. 24 Sep 2017: Salut et bienvenue à MdMax :-)
olinuxx, 16:58, sam. 23 Sep 2017: OK sub26nico, merci. Allez @jz, t'es attendu dans les forums pour nous en parler maintenant :-)
sub26nico, 14:11, sam. 23 Sep 2017: @olinuxx, c'était juste pour répondre au coté 'libre', mais j'attends aussi le retour de @jz ;-)
olinuxx, 13:50, sam. 23 Sep 2017: @sub26nico : exact @sub26nico ! Mais on avait qu'une seule ligne, peut être que jz peut nous en dire un peu plusse ? :-)
sub26nico, 23:28, ven. 22 Sep 2017: olinuxx ,on en avait parlé dans l'édito de mars 2017, son code est open-source :S
olinuxx, 22:30, ven. 22 Sep 2017: Tu viens nous en parler dans les forums @jz et nous dire pourquoi tu trouves qu'il est chouette ce synthé, et ce qu'il a en rapport avec du logiciel libre ? Là, ça paraîtra moins comme du spam :-)
jz, 20:27, ven. 22 Sep 2017: http://nozoid.com/ocs-2/ est le synthé le plus cool que je connaisse (ca serait du spam s'il n'était pas aussi du logiciel libre! ;)
sub26nico, 10:27, ven. 22 Sep 2017: a voté pur le joute n°1 !
allany, 09:27, ven. 22 Sep 2017: Bonjour, bonjour ! Voter, c'est fait ! [Lien]
ycollet, 21:58, mer. 20 Sep 2017: Un logiciel java sympa autour de csound ... m
olinuxx, 21:08, mer. 20 Sep 2017: Bonjour et bienvenue à raspbeguy ! :-)
r1, 06:28, mer. 20 Sep 2017: A voté ! Les gens viendez voter svp pour la joute N°12 :-) [Lien]