{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/10/08/spotify-echoprint-server-serveur-pour-le-systeme-dempreinte-digitale-audio-echoprint-serveur-dimpression/","llm_html_url":"https://tutos-gameserver.fr/2019/10/08/spotify-echoprint-server-serveur-pour-le-systeme-dempreinte-digitale-audio-echoprint-serveur-dimpression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/10/08/spotify-echoprint-server-serveur-pour-le-systeme-dempreinte-digitale-audio-echoprint-serveur-dimpression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"spotify / echoprint-server: serveur pour le système d&#39;empreinte digitale audio Echoprint\n\n &#8211; Serveur d&rsquo;impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-10-07T22:05:03+00:00","modified_at":"2019-10-07T22:05:03+00:00","word_count":867,"reading_time_seconds":261,"summary":"Une bibliothèque C, avec un module d’extension Python et des liaisons Java, pour indexation rapide et interrogation des données echoprint. Installation La bibliothèque C autonome est construite avec CMake. Cette étape est obligatoire pour utiliser les liaisons Java (mais pas pour le Python). Pour construire le module d’extension Python, exécutez installation de python.py install. Usage [&hellip;]","summary_points":["Une bibliothèque C, avec un module d’extension Python et des liaisons Java, pour\nindexation rapide et interrogation des données echoprint.","Installation\nLa bibliothèque C autonome est construite avec CMake.","Cette étape est obligatoire\npour utiliser les liaisons Java (mais pas pour le Python).","Pour construire le module d’extension Python, exécutez installation de python.py install."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"7132b4336b3824c686c331740beea1f5","plain_text":"Une bibliothèque C, avec un module d’extension Python et des liaisons Java, pour\nindexation rapide et interrogation des données echoprint.\nInstallation\nLa bibliothèque C autonome est construite avec CMake. Cette étape est obligatoire\npour utiliser les liaisons Java (mais pas pour le Python).\nPour construire le module d’extension Python, exécutez installation de python.py install.\nUsage\nLe reste de ce fichier documente l&#39;utilisation de serveur echoprint via\nle module d’extension Python, à travers un ensemble de scripts pratiques\nle poubelle/ annuaire.\nPour les liaisons Java, veuillez vous référer à la UsageExample.java fichier.\nLe générateur de code echoprint, utilisé pour convertir des fichiers audio en\nLes chaînes echoprint, peuvent être trouvées ici:\nechoprint-codegen.\nATTENTION\nLa bibliothèque utilise un format binaire personnalisé pour la vitesse. À ce point,\nL&#39;ENVIRONNEMENT N&#39;EST PAS CONTROLE donc déplacer des fichiers d&#39;index entre les machines\navec différentes architectures pourrait causer des problèmes. Le code a été\ntesté sur petit endian Machines.\nLe code Java permettant de créer des index suppose explicitement peu\nEndian architecture.\nechoprint-decode\nConvertir une chaîne de code en sortie par echoprint-codegen dans le\nliste correspondante des codes représentés sous forme d&#39;entiers séparés par des virgules.\nUsage:\nechoprint-codegen chanson.ogg&gt; codegen_output.json\ncat codegen_output.json | jq -r &#39;.[0].code &#39;| echoprint-decode&gt; codes.txt\n\ncodes.txt ressemblera:\n150555,1035718,621673,794882,40662,955768,96899,166055, ...\nCe script affiche uniquement les codes echoprint, pas les\ncompensations. jq est un outil de ligne de commande pour traiter les chaînes JSON, il peut\nêtre trouvé ici.\nechoprint-inverted-index\nPrend une série de chaînes echoprint (une par ligne) et\nun chemin de sortie. Écrit un index compact sur le disque.\nUsage:\nchat ... | ./echoprint-inverted-index index.bin\n\nindex.bin le format est binaire, voir les détails d’implémentation ci-dessous.\nSi plus de 65 535 chansons sont indexées, la sortie sera divisée en\nblocs avec le schéma de nommage suivant:\nindex.bin_0000\nindex.bin_0001\n...\n\nÉventuellement le -je switch commute le format d&#39;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nechoprint-inverted-query\nPrend une série de chaînes echoprint (une par ligne) et une liste d’index\ndes blocs. Pour chaque requête, les résultats en sortie sur stdout sont codés en json\nobjets.\nUsage:\nchat ... | ./echoprint-inverted-query index-file-1 [index-file-2 ...]\n\noù l&#39;entrée est une chaîne echoprint par ligne;\nChaque ligne de sortie ressemble à ceci:\n{\n  &quot;résultats&quot;:[\n    \n      &quot;index&quot;: 0,\n      &quot;score&quot;: 0,69340412080287933,\n    ,\n    \n      &quot;index&quot;: 8,\n      &quot;score&quot;: 0.56301175890117883,\n    ,\n    \n      &quot;index&quot;: 120,\n      &quot;score&quot;: 0.3182627242477954626,\n    ,\n    ...\n\nle indice champ représente la position de la chanson correspondante dans le\nindice.\nÉventuellement le -je switch commute le format d&#39;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nService REST\nle echoprint-rest-service Le script écoute les requêtes POST (par\npar défaut sur le port 5678), avec une chaîne echoprint comme echoprint\nparamètre. le test-rest.sh montre comment interroger en utilisant boucle.\nLa demande est faite à hôte: requête /    avec     un des\n\njaccard\nset_int\nset_int_norm_length_first\n\nUsage:\nechoprint-rest-service index-file-1 [index-file-2 ...]\n\nL&#39;option --ids-file accepte un chemin vers un fichier texte où chaque\nLa ligne représente un identifiant pour la piste indexée en conséquence dans le répertoire.\nindice. Si spécifié, les résultats retournés auront un identifiant champ.\nExemple: interrogation audio\nEn supposant 0005dad86d4d4c6fb592d42d767e117f.ogg est dans le courant\nrépertoire, coupons-le de 00h30 à 16h30 et ré-encodez-le en tant que 128\nkbps mp3 (pour montrer que echoprint est robuste aux modifications du\nfichier):\nffmpeg -i 0005dad86d4d4c6fb592d42d767e117f.ogg \n-s 30 -t 240 \n0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3\n\nExécutez le codegen echoprint, extrayez la chaîne echoprint:\n../echoprint-codegen/echoprint-codegen\n    0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3 \n    | jq -r &#39;.[0].code &#39;\n    &gt; 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint```\n\nInterrogez le service:\ncurl -s --data \n    echoprint = `cat 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint` \n    : 5678 / requête\n\nLes résultats devraient être similaires à\n\n  &quot;résultats&quot;: [\n    \n      \"id\": \"0005dad86d4d4c6fb592d42d767e117f\",\n      \"index\": 0,\n      \"score\": 0.34932565689086914\n    ,\n    \n      \"id\": \"ee59c151d679413a80ac4e49ac92c662\",\n      \"index\": 698096,\n      \"score\": 0.033668458461761475\n    ,\n    \n      \"id\": \"026526e6a02648668ff9f410faab15be\",\n      \"index\": 312466,\n      \"score\": 0.015930989757180214\n    ,\n    ...\n  ]\n\n\nDétails d&#39;implémentation\nSimilarité\nLa similarité entre deux echoprints est calculée sur leur\nsac de mots représentations. Cela signifie que les décalages des codes\nne sont pas pris en compte, pas plus que les multiplicités des codes.\nFormat binaire d&#39;index inversé\nL’index inversé est sérialisé en plusieurs des blocs, chacun étant un\nvidage de la mémoire de la EchoprintInvertedIndexBlock struct défini dans le\nEn tête de fichier.\nLicence 📝\nLe projet est disponible sous la licence Apache 2.0.\nContribuant 📬\nLes contributions sont les bienvenues, consultez le document CONTRIBUTING.md pour plus d&#39;informations.\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Une bibliothèque C, avec un module d’extension Python et des liaisons Java, pour\nindexation rapide et interrogation des données echoprint.\nInstallation\nLa bibliothèque C autonome est construite avec CMake. Cette étape est obligatoire\npour utiliser les liaisons Java (mais pas pour le Python).\nPour construire le module d’extension Python, exécutez installation de python.py install.\nUsage\nLe reste de ce fichier documente l&#39;utilisation de serveur echoprint via\nle module d’extension Python, à travers un ensemble de scripts pratiques\nle poubelle/ annuaire.\nPour les liaisons Java, veuillez vous référer à la UsageExample.java fichier.\nLe générateur de code echoprint, utilisé pour convertir des fichiers audio en\nLes chaînes echoprint, peuvent être trouvées ici:\nechoprint-codegen.\nATTENTION\nLa bibliothèque utilise un format binaire personnalisé pour la vitesse. À ce point,\nL&#39;ENVIRONNEMENT N&#39;EST PAS CONTROLE donc déplacer des fichiers d&#39;index entre les machines\navec différentes architectures pourrait causer des problèmes. Le code a été\ntesté sur petit endian Machines.\nLe code Java permettant de créer des index suppose explicitement peu\nEndian architecture.\nechoprint-decode\nConvertir une chaîne de code en sortie par echoprint-codegen dans le\nliste correspondante des codes représentés sous forme d&#39;entiers séparés par des virgules.\nUsage:\nechoprint-codegen chanson.ogg&gt; codegen_output.json\ncat codegen_output.json | jq -r &#39;.[0].code &#39;| echoprint-decode&gt; codes.txt","codes.txt ressemblera:\n150555,1035718,621673,794882,40662,955768,96899,166055, ...\nCe script affiche uniquement les codes echoprint, pas les\ncompensations. jq est un outil de ligne de commande pour traiter les chaînes JSON, il peut\nêtre trouvé ici.\nechoprint-inverted-index\nPrend une série de chaînes echoprint (une par ligne) et\nun chemin de sortie. Écrit un index compact sur le disque.\nUsage:\nchat ... | ./echoprint-inverted-index index.bin","index.bin le format est binaire, voir les détails d’implémentation ci-dessous.\nSi plus de 65 535 chansons sont indexées, la sortie sera divisée en\nblocs avec le schéma de nommage suivant:\nindex.bin_0000\nindex.bin_0001\n...","Éventuellement le -je switch commute le format d&#39;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nechoprint-inverted-query\nPrend une série de chaînes echoprint (une par ligne) et une liste d’index\ndes blocs. Pour chaque requête, les résultats en sortie sur stdout sont codés en json\nobjets.\nUsage:\nchat ... | ./echoprint-inverted-query index-file-1 [index-file-2 ...]","où l&#39;entrée est une chaîne echoprint par ligne;\nChaque ligne de sortie ressemble à ceci:\n{\n  &quot;résultats&quot;:[\n    \n      &quot;index&quot;: 0,\n      &quot;score&quot;: 0,69340412080287933,\n    ,\n    \n      &quot;index&quot;: 8,\n      &quot;score&quot;: 0.56301175890117883,\n    ,\n    \n      &quot;index&quot;: 120,\n      &quot;score&quot;: 0.3182627242477954626,\n    ,\n    ...","le indice champ représente la position de la chanson correspondante dans le\nindice.\nÉventuellement le -je switch commute le format d&#39;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nService REST\nle echoprint-rest-service Le script écoute les requêtes POST (par\npar défaut sur le port 5678), avec une chaîne echoprint comme echoprint\nparamètre. le test-rest.sh montre comment interroger en utilisant boucle.\nLa demande est faite à hôte: requête /    avec     un des","jaccard\nset_int\nset_int_norm_length_first","Usage:\nechoprint-rest-service index-file-1 [index-file-2 ...]","L&#39;option --ids-file accepte un chemin vers un fichier texte où chaque\nLa ligne représente un identifiant pour la piste indexée en conséquence dans le répertoire.\nindice. Si spécifié, les résultats retournés auront un identifiant champ.\nExemple: interrogation audio\nEn supposant 0005dad86d4d4c6fb592d42d767e117f.ogg est dans le courant\nrépertoire, coupons-le de 00h30 à 16h30 et ré-encodez-le en tant que 128\nkbps mp3 (pour montrer que echoprint est robuste aux modifications du\nfichier):\nffmpeg -i 0005dad86d4d4c6fb592d42d767e117f.ogg \n-s 30 -t 240 \n0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3","Exécutez le codegen echoprint, extrayez la chaîne echoprint:\n../echoprint-codegen/echoprint-codegen\n    0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3 \n    | jq -r &#39;.[0].code &#39;\n    &gt; 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint```","Interrogez le service:\ncurl -s --data \n    echoprint = `cat 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint` \n    : 5678 / requête","Les résultats devraient être similaires à","  &quot;résultats&quot;: [\n    \n      \"id\": \"0005dad86d4d4c6fb592d42d767e117f\",\n      \"index\": 0,\n      \"score\": 0.34932565689086914\n    ,\n    \n      \"id\": \"ee59c151d679413a80ac4e49ac92c662\",\n      \"index\": 698096,\n      \"score\": 0.033668458461761475\n    ,\n    \n      \"id\": \"026526e6a02648668ff9f410faab15be\",\n      \"index\": 312466,\n      \"score\": 0.015930989757180214\n    ,\n    ...\n  ]","Détails d&#39;implémentation\nSimilarité\nLa similarité entre deux echoprints est calculée sur leur\nsac de mots représentations. Cela signifie que les décalages des codes\nne sont pas pris en compte, pas plus que les multiplicités des codes.\nFormat binaire d&#39;index inversé\nL’index inversé est sérialisé en plusieurs des blocs, chacun étant un\nvidage de la mémoire de la EchoprintInvertedIndexBlock struct défini dans le\nEn tête de fichier.\nLicence 📝\nLe projet est disponible sous la licence Apache 2.0.\nContribuant 📬\nLes contributions sont les bienvenues, consultez le document CONTRIBUTING.md pour plus d&#39;informations.","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Une bibliothèque C, avec un module d’extension Python et des liaisons Java, pour\nindexation rapide et interrogation des données echoprint.\nInstallation\nLa bibliothèque C autonome est construite avec CMake. Cette étape est obligatoire\npour utiliser les liaisons Java (mais pas pour le Python).\nPour construire le module d’extension Python, exécutez installation de python.py install.\nUsage\nLe reste de ce fichier documente l&#39;utilisation de serveur echoprint via\nle module d’extension Python, à travers un ensemble de scripts pratiques\nle poubelle/ annuaire.\nPour les liaisons Java, veuillez vous référer à la UsageExample.java fichier.\nLe générateur de code echoprint, utilisé pour convertir des fichiers audio en\nLes chaînes echoprint, peuvent être trouvées ici:\nechoprint-codegen.\nATTENTION\nLa bibliothèque utilise un format binaire personnalisé pour la vitesse. À ce point,\nL&#39;ENVIRONNEMENT N&#39;EST PAS CONTROLE donc déplacer des fichiers d&#39;index entre les machines\navec différentes architectures pourrait causer des problèmes. Le code a été\ntesté sur petit endian Machines.\nLe code Java permettant de créer des index suppose explicitement peu\nEndian architecture.\nechoprint-decode\nConvertir une chaîne de code en sortie par echoprint-codegen dans le\nliste correspondante des codes représentés sous forme d&#39;entiers séparés par des virgules.\nUsage:\nechoprint-codegen chanson.ogg&gt; codegen_output.json\ncat codegen_output.json | jq -r &#39;.[0].code &#39;| echoprint-decode&gt; codes.txt","html":"<p>Une bibliothèque C, avec un module d’extension Python et des liaisons Java, pour\nindexation rapide et interrogation des données echoprint.\nInstallation\nLa bibliothèque C autonome est construite avec CMake. Cette étape est obligatoire\npour utiliser les liaisons Java (mais pas pour le Python).\nPour construire le module d’extension Python, exécutez installation de python.py install.\nUsage\nLe reste de ce fichier documente l&#039;utilisation de serveur echoprint via\nle module d’extension Python, à travers un ensemble de scripts pratiques\nle poubelle/ annuaire.\nPour les liaisons Java, veuillez vous référer à la UsageExample.java fichier.\nLe générateur de code echoprint, utilisé pour convertir des fichiers audio en\nLes chaînes echoprint, peuvent être trouvées ici:\nechoprint-codegen.\nATTENTION\nLa bibliothèque utilise un format binaire personnalisé pour la vitesse. À ce point,\nL&#039;ENVIRONNEMENT N&#039;EST PAS CONTROLE donc déplacer des fichiers d&#039;index entre les machines\navec différentes architectures pourrait causer des problèmes. Le code a été\ntesté sur petit endian Machines.\nLe code Java permettant de créer des index suppose explicitement peu\nEndian architecture.\nechoprint-decode\nConvertir une chaîne de code en sortie par echoprint-codegen dans le\nliste correspondante des codes représentés sous forme d&#039;entiers séparés par des virgules.\nUsage:\nechoprint-codegen chanson.ogg&gt; codegen_output.json\ncat codegen_output.json | jq -r &#039;.[0].code &#039;| echoprint-decode&gt; codes.txt</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"codes.txt ressemblera:\n150555,1035718,621673,794882,40662,955768,96899,166055, ...\nCe script affiche uniquement les codes echoprint, pas les\ncompensations. jq est un outil de ligne de commande pour traiter les chaînes JSON, il peut\nêtre trouvé ici.\nechoprint-inverted-index\nPrend une série de chaînes echoprint (une par ligne) et\nun chemin de sortie. Écrit un index compact sur le disque.\nUsage:\nchat ... | ./echoprint-inverted-index index.bin","html":"<p>codes.txt ressemblera:\n150555,1035718,621673,794882,40662,955768,96899,166055, ...\nCe script affiche uniquement les codes echoprint, pas les\ncompensations. jq est un outil de ligne de commande pour traiter les chaînes JSON, il peut\nêtre trouvé ici.\nechoprint-inverted-index\nPrend une série de chaînes echoprint (une par ligne) et\nun chemin de sortie. Écrit un index compact sur le disque.\nUsage:\nchat ... | ./echoprint-inverted-index index.bin</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"index.bin le format est binaire, voir les détails d’implémentation ci-dessous.\nSi plus de 65 535 chansons sont indexées, la sortie sera divisée en\nblocs avec le schéma de nommage suivant:\nindex.bin_0000\nindex.bin_0001\n...","html":"<p>index.bin le format est binaire, voir les détails d’implémentation ci-dessous.\nSi plus de 65 535 chansons sont indexées, la sortie sera divisée en\nblocs avec le schéma de nommage suivant:\nindex.bin_0000\nindex.bin_0001\n...</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Éventuellement le -je switch commute le format d&#39;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nechoprint-inverted-query\nPrend une série de chaînes echoprint (une par ligne) et une liste d’index\ndes blocs. Pour chaque requête, les résultats en sortie sur stdout sont codés en json\nobjets.\nUsage:\nchat ... | ./echoprint-inverted-query index-file-1 [index-file-2 ...]","html":"<p>Éventuellement le -je switch commute le format d&#039;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nechoprint-inverted-query\nPrend une série de chaînes echoprint (une par ligne) et une liste d’index\ndes blocs. Pour chaque requête, les résultats en sortie sur stdout sont codés en json\nobjets.\nUsage:\nchat ... | ./echoprint-inverted-query index-file-1 [index-file-2 ...]</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"où l&#39;entrée est une chaîne echoprint par ligne;\nChaque ligne de sortie ressemble à ceci:\n{\n  &quot;résultats&quot;:[\n    \n      &quot;index&quot;: 0,\n      &quot;score&quot;: 0,69340412080287933,\n    ,\n    \n      &quot;index&quot;: 8,\n      &quot;score&quot;: 0.56301175890117883,\n    ,\n    \n      &quot;index&quot;: 120,\n      &quot;score&quot;: 0.3182627242477954626,\n    ,\n    ...","html":"<p>où l&#039;entrée est une chaîne echoprint par ligne;\nChaque ligne de sortie ressemble à ceci:\n{\n  &quot;résultats&quot;:[\n    \n      &quot;index&quot;: 0,\n      &quot;score&quot;: 0,69340412080287933,\n    ,\n    \n      &quot;index&quot;: 8,\n      &quot;score&quot;: 0.56301175890117883,\n    ,\n    \n      &quot;index&quot;: 120,\n      &quot;score&quot;: 0.3182627242477954626,\n    ,\n    ...</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"le indice champ représente la position de la chanson correspondante dans le\nindice.\nÉventuellement le -je switch commute le format d&#39;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nService REST\nle echoprint-rest-service Le script écoute les requêtes POST (par\npar défaut sur le port 5678), avec une chaîne echoprint comme echoprint\nparamètre. le test-rest.sh montre comment interroger en utilisant boucle.\nLa demande est faite à hôte: requête /    avec     un des","html":"<p>le indice champ représente la position de la chanson correspondante dans le\nindice.\nÉventuellement le -je switch commute le format d&#039;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nService REST\nle echoprint-rest-service Le script écoute les requêtes POST (par\npar défaut sur le port 5678), avec une chaîne echoprint comme echoprint\nparamètre. le test-rest.sh montre comment interroger en utilisant boucle.\nLa demande est faite à hôte: requête /    avec     un des</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"jaccard\nset_int\nset_int_norm_length_first","html":"<p>jaccard\nset_int\nset_int_norm_length_first</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"Usage:\nechoprint-rest-service index-file-1 [index-file-2 ...]","html":"<p>Usage:\nechoprint-rest-service index-file-1 [index-file-2 ...]</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"L&#39;option --ids-file accepte un chemin vers un fichier texte où chaque\nLa ligne représente un identifiant pour la piste indexée en conséquence dans le répertoire.\nindice. Si spécifié, les résultats retournés auront un identifiant champ.\nExemple: interrogation audio\nEn supposant 0005dad86d4d4c6fb592d42d767e117f.ogg est dans le courant\nrépertoire, coupons-le de 00h30 à 16h30 et ré-encodez-le en tant que 128\nkbps mp3 (pour montrer que echoprint est robuste aux modifications du\nfichier):\nffmpeg -i 0005dad86d4d4c6fb592d42d767e117f.ogg \n-s 30 -t 240 \n0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3","html":"<p>L&#039;option --ids-file accepte un chemin vers un fichier texte où chaque\nLa ligne représente un identifiant pour la piste indexée en conséquence dans le répertoire.\nindice. Si spécifié, les résultats retournés auront un identifiant champ.\nExemple: interrogation audio\nEn supposant 0005dad86d4d4c6fb592d42d767e117f.ogg est dans le courant\nrépertoire, coupons-le de 00h30 à 16h30 et ré-encodez-le en tant que 128\nkbps mp3 (pour montrer que echoprint est robuste aux modifications du\nfichier):\nffmpeg -i 0005dad86d4d4c6fb592d42d767e117f.ogg \n-s 30 -t 240 \n0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Exécutez le codegen echoprint, extrayez la chaîne echoprint:\n../echoprint-codegen/echoprint-codegen\n    0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3 \n    | jq -r &#39;.[0].code &#39;\n    &gt; 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint```","html":"<p>Exécutez le codegen echoprint, extrayez la chaîne echoprint:\n../echoprint-codegen/echoprint-codegen\n    0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3 \n    | jq -r &#039;.[0].code &#039;\n    &gt; 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint```</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"Interrogez le service:\ncurl -s --data \n    echoprint = `cat 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint` \n    : 5678 / requête","html":"<p>Interrogez le service:\ncurl -s --data \n    echoprint = `cat 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint` \n    : 5678 / requête</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"Les résultats devraient être similaires à","html":"<p>Les résultats devraient être similaires à</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"  &quot;résultats&quot;: [\n    \n      \"id\": \"0005dad86d4d4c6fb592d42d767e117f\",\n      \"index\": 0,\n      \"score\": 0.34932565689086914\n    ,\n    \n      \"id\": \"ee59c151d679413a80ac4e49ac92c662\",\n      \"index\": 698096,\n      \"score\": 0.033668458461761475\n    ,\n    \n      \"id\": \"026526e6a02648668ff9f410faab15be\",\n      \"index\": 312466,\n      \"score\": 0.015930989757180214\n    ,\n    ...\n  ]","html":"<p>  &quot;résultats&quot;: [\n    \n      &quot;id&quot;: &quot;0005dad86d4d4c6fb592d42d767e117f&quot;,\n      &quot;index&quot;: 0,\n      &quot;score&quot;: 0.34932565689086914\n    ,\n    \n      &quot;id&quot;: &quot;ee59c151d679413a80ac4e49ac92c662&quot;,\n      &quot;index&quot;: 698096,\n      &quot;score&quot;: 0.033668458461761475\n    ,\n    \n      &quot;id&quot;: &quot;026526e6a02648668ff9f410faab15be&quot;,\n      &quot;index&quot;: 312466,\n      &quot;score&quot;: 0.015930989757180214\n    ,\n    ...\n  ]</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"Détails d&#39;implémentation\nSimilarité\nLa similarité entre deux echoprints est calculée sur leur\nsac de mots représentations. Cela signifie que les décalages des codes\nne sont pas pris en compte, pas plus que les multiplicités des codes.\nFormat binaire d&#39;index inversé\nL’index inversé est sérialisé en plusieurs des blocs, chacun étant un\nvidage de la mémoire de la EchoprintInvertedIndexBlock struct défini dans le\nEn tête de fichier.\nLicence 📝\nLe projet est disponible sous la licence Apache 2.0.\nContribuant 📬\nLes contributions sont les bienvenues, consultez le document CONTRIBUTING.md pour plus d&#39;informations.","html":"<p>Détails d&#039;implémentation\nSimilarité\nLa similarité entre deux echoprints est calculée sur leur\nsac de mots représentations. Cela signifie que les décalages des codes\nne sont pas pris en compte, pas plus que les multiplicités des codes.\nFormat binaire d&#039;index inversé\nL’index inversé est sérialisé en plusieurs des blocs, chacun étant un\nvidage de la mémoire de la EchoprintInvertedIndexBlock struct défini dans le\nEn tête de fichier.\nLicence 📝\nLe projet est disponible sous la licence Apache 2.0.\nContribuant 📬\nLes contributions sont les bienvenues, consultez le document CONTRIBUTING.md pour plus d&#039;informations.</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"Une bibliothèque C, avec un module d’extension Python et des liaisons Java, pour\nindexation rapide et interrogation des données echoprint.\nInstallation\nLa bibliothèque C autonome est construite avec CMake. Cette étape est obligatoire\npour utiliser les liaisons Java (mais pas pour le Python).\nPour construire le module d’extension Python, exécutez installation de python.py install.\nUsage\nLe reste de ce fichier documente l&#39;utilisation de serveur echoprint via\nle module d’extension Python, à travers un ensemble de scripts pratiques\nle poubelle/ annuaire.\nPour les liaisons Java, veuillez vous référer à la UsageExample.java fichier.\nLe générateur de code echoprint, utilisé pour convertir des fichiers audio en\nLes chaînes echoprint, peuvent être trouvées ici:\nechoprint-codegen.\nATTENTION\nLa bibliothèque utilise un format binaire personnalisé pour la vitesse. À ce point,\nL&#39;ENVIRONNEMENT N&#39;EST PAS CONTROLE donc déplacer des fichiers d&#39;index entre les machines\navec différentes architectures pourrait causer des problèmes. Le code a été\ntesté sur petit endian Machines.\nLe code Java permettant de créer des index suppose explicitement peu\nEndian architecture.\nechoprint-decode\nConvertir une chaîne de code en sortie par echoprint-codegen dans le\nliste correspondante des codes représentés sous forme d&#39;entiers séparés par des virgules.\nUsage:\nechoprint-codegen chanson.ogg&gt; codegen_output.json\ncat codegen_output.json | jq -r &#39;.[0].code &#39;| echoprint-decode&gt; codes.txt"},{"id":"text-2","heading":"Text","content":"codes.txt ressemblera:\n150555,1035718,621673,794882,40662,955768,96899,166055, ...\nCe script affiche uniquement les codes echoprint, pas les\ncompensations. jq est un outil de ligne de commande pour traiter les chaînes JSON, il peut\nêtre trouvé ici.\nechoprint-inverted-index\nPrend une série de chaînes echoprint (une par ligne) et\nun chemin de sortie. Écrit un index compact sur le disque.\nUsage:\nchat ... | ./echoprint-inverted-index index.bin"},{"id":"text-3","heading":"Text","content":"index.bin le format est binaire, voir les détails d’implémentation ci-dessous.\nSi plus de 65 535 chansons sont indexées, la sortie sera divisée en\nblocs avec le schéma de nommage suivant:\nindex.bin_0000\nindex.bin_0001\n..."},{"id":"text-4","heading":"Text","content":"Éventuellement le -je switch commute le format d&#39;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nechoprint-inverted-query\nPrend une série de chaînes echoprint (une par ligne) et une liste d’index\ndes blocs. Pour chaque requête, les résultats en sortie sur stdout sont codés en json\nobjets.\nUsage:\nchat ... | ./echoprint-inverted-query index-file-1 [index-file-2 ...]"},{"id":"text-5","heading":"Text","content":"où l&#39;entrée est une chaîne echoprint par ligne;\nChaque ligne de sortie ressemble à ceci:\n{\n  &quot;résultats&quot;:[\n    \n      &quot;index&quot;: 0,\n      &quot;score&quot;: 0,69340412080287933,\n    ,\n    \n      &quot;index&quot;: 8,\n      &quot;score&quot;: 0.56301175890117883,\n    ,\n    \n      &quot;index&quot;: 120,\n      &quot;score&quot;: 0.3182627242477954626,\n    ,\n    ..."},{"id":"text-6","heading":"Text","content":"le indice champ représente la position de la chanson correspondante dans le\nindice.\nÉventuellement le -je switch commute le format d&#39;entrée sur un\nliste de codes entiers séparés par des virgules (une chanson par ligne).\nService REST\nle echoprint-rest-service Le script écoute les requêtes POST (par\npar défaut sur le port 5678), avec une chaîne echoprint comme echoprint\nparamètre. le test-rest.sh montre comment interroger en utilisant boucle.\nLa demande est faite à hôte: requête /    avec     un des"},{"id":"text-7","heading":"Text","content":"jaccard\nset_int\nset_int_norm_length_first"},{"id":"text-8","heading":"Text","content":"Usage:\nechoprint-rest-service index-file-1 [index-file-2 ...]"},{"id":"text-9","heading":"Text","content":"L&#39;option --ids-file accepte un chemin vers un fichier texte où chaque\nLa ligne représente un identifiant pour la piste indexée en conséquence dans le répertoire.\nindice. Si spécifié, les résultats retournés auront un identifiant champ.\nExemple: interrogation audio\nEn supposant 0005dad86d4d4c6fb592d42d767e117f.ogg est dans le courant\nrépertoire, coupons-le de 00h30 à 16h30 et ré-encodez-le en tant que 128\nkbps mp3 (pour montrer que echoprint est robuste aux modifications du\nfichier):\nffmpeg -i 0005dad86d4d4c6fb592d42d767e117f.ogg \n-s 30 -t 240 \n0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3"},{"id":"text-10","heading":"Text","content":"Exécutez le codegen echoprint, extrayez la chaîne echoprint:\n../echoprint-codegen/echoprint-codegen\n    0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.mp3 \n    | jq -r &#39;.[0].code &#39;\n    &gt; 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint```"},{"id":"text-11","heading":"Text","content":"Interrogez le service:\ncurl -s --data \n    echoprint = `cat 0005dad86d4d4c6fb592d42d767e117f_cut_lowrate.echoprint` \n    : 5678 / requête"},{"id":"text-12","heading":"Text","content":"Les résultats devraient être similaires à"},{"id":"text-13","heading":"Text","content":"  &quot;résultats&quot;: [\n    \n      \"id\": \"0005dad86d4d4c6fb592d42d767e117f\",\n      \"index\": 0,\n      \"score\": 0.34932565689086914\n    ,\n    \n      \"id\": \"ee59c151d679413a80ac4e49ac92c662\",\n      \"index\": 698096,\n      \"score\": 0.033668458461761475\n    ,\n    \n      \"id\": \"026526e6a02648668ff9f410faab15be\",\n      \"index\": 312466,\n      \"score\": 0.015930989757180214\n    ,\n    ...\n  ]"},{"id":"text-14","heading":"Text","content":"Détails d&#39;implémentation\nSimilarité\nLa similarité entre deux echoprints est calculée sur leur\nsac de mots représentations. Cela signifie que les décalages des codes\nne sont pas pris en compte, pas plus que les multiplicités des codes.\nFormat binaire d&#39;index inversé\nL’index inversé est sérialisé en plusieurs des blocs, chacun étant un\nvidage de la mémoire de la EchoprintInvertedIndexBlock struct défini dans le\nEn tête de fichier.\nLicence 📝\nLe projet est disponible sous la licence Apache 2.0.\nContribuant 📬\nLes contributions sont les bienvenues, consultez le document CONTRIBUTING.md pour plus d&#39;informations."},{"id":"text-15","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/10/251374"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/10/08/spotify-echoprint-server-serveur-pour-le-systeme-dempreinte-digitale-audio-echoprint-serveur-dimpression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/10/08/spotify-echoprint-server-serveur-pour-le-systeme-dempreinte-digitale-audio-echoprint-serveur-dimpression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/10/08/spotify-echoprint-server-serveur-pour-le-systeme-dempreinte-digitale-audio-echoprint-serveur-dimpression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}