12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- // librairie de gestion des répertoires et fichiers
- const fs = require("fs");
- const path = require("path");
- // librairie de gestion des arguments de la ligne de commande
- var argv = require("optimist").argv;
- // librairie de traitement du pinyin
- const pinyinizer = require('pinyinizer');
- const piyi = require("pinyin");
- // librairie de gestion du hanzi
- const opencc = require('node-opencc');
- // données de stockage
- var fichierJson = "shtooka-table.json";
- // en entrée, on donne le nom du fichier à traiter sans le répertoire
- var repertoireInitial = "./";
- var argument = argv._[0];
- fichierDonnées = path.join(repertoireInitial,argument);
- // DEBUG
- console.log("fichier données en entrée: ",fichierDonnées);
- // utilitaires
- var tab = "\t";
- var endLine = "\n";
- // Variable fichier du fichier json en sortie
- fichierJson = path.join(repertoireInitial, argument + ".json");
- // DEBUG
- console.log("fichier données en sortie: ",fichierJson);
- var donnéesbrutes = fs.readFileSync(fichierDonnées);
- var données = JSON.parse(donnéesbrutes);
- // DEBUG
- //console.log("Locuteur", données.index.group._attributes.swac_speak_name);
- var locuteur = données.index.group._attributes.swac_speak_name;
- //DEBUG
- console.log("locuteur: ", locuteur);
- var enregistrements = données.index.group.file;
- // DEBUG
- //console.log(enregistrements);
- l = {
- "hanzi": "",
- "pinyin": "",
- "sound" : "",
- "locuteur": ""
- };
- // création du nouveau fichier json
- var json = fs.createWriteStream(fichierJson);
- json.write('{"shtooka":[');
- enregistrements.forEach(function(enregistrement) {
- try {
- var temps = "";
- var pinyintemp = "";
- // console.log(enregistrement._attributes.path, "**", enregistrement.tag._attributes.swac_text);
- l.hanzi = enregistrement.tag._attributes.swac_text;
- temps = piyi(l.hanzi, {
- segment: true // Enable Chinese words eegmentation, fix most heteronym problem.
- });
- // DEBUG
- // console.log(piyi(l.hanzi));
- temps.forEach(function(temp){
- pinyintemp = pinyintemp + temp;
- })
- // DEBUG
- // console.log(pinyintemp);
- l.pinyin = pinyintemp;
- l.sound = enregistrement._attributes.path;
- l.locuteur = locuteur;
- json.write(JSON.stringify(l) + ",");
- // DEBUG
- //console.log(l);
- } catch (err) {
- console.log(err);
- }
- });
- // écriture fin de fichier, et fermeture fichier json
- json.write('{},]}');
- json.end();
|