Commit b62ee38e authored by Elias's avatar Elias

script added

parent 575619eb
import argparse
from pympi import Praat
import csv
import os
def creerDossierDeCSV():
# Le dossier à créer s'il n'existe pas
folder_name = "textGridEnCSV"
# Vérifier si le dossier existe déjà, sinon le créer
if not os.path.exists(folder_name):
os.makedirs(folder_name)
print(f"Dossier créé...")
else:
print(f"Le dossier existe déjà.")
def csvAPartirDeTextGrid(textgrid_file):
# Générer le nom du fichier CSV de sortie avec la même base que le fichier TextGrid
nomFichier = os.path.splitext(os.path.basename(textgrid_file))[0]
# Charger le fichier TextGrid avec praat
tg = Praat.TextGrid(textgrid_file)
locuteur1_name = tg.tiers[0].name
locuteur2_name = tg.tiers[3].name
# Exporter en csv les intervalles pour le locuteur 1
with open(f"textGridEnCSV/{nomFichier}-{locuteur1_name}.csv", mode="w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["xmin", "xmax", "text"])
try:
for interval in tg.tiers[0].intervals:
xmin = interval[0]
xmax = interval[1]
text = interval[2]
writer.writerow([xmin, xmax, text])
print(f"Données de {locuteur1_name} exportées avec succès pour le fichier {nomFichier}.")
except Exception as e:
print(f"Erreur lecture {e}")
# Exporter en csv les intervalles pour le locuteur 2
with open(f"textGridEnCSV/{nomFichier}-{locuteur2_name}.csv", mode="w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["xmin", "xmax", "text"])
try:
for interval in tg.tiers[3].intervals:
xmin = interval[0]
xmax = interval[1]
text = interval[2]
writer.writerow([xmin, xmax, text])
print(f"Données de {locuteur2_name} exportées avec succès pour le fichier {nomFichier}.")
except Exception as e:
print(f"Erreur lecture {e}")
def traiterDossierTextGrid(dossier_path):
# Lister tous les fichiers du dossier
fichiers = os.listdir(dossier_path)
# Ne garder que les .TextGrid
fichiers_textgrid = [f for f in fichiers if f.endswith('.TextGrid')]
if not fichiers_textgrid:
print("Pas de fichier .TextGrid dans le dossier.")
return
for fichier in fichiers_textgrid:
chemin_complet = os.path.join(dossier_path, fichier)
print(f"Traitement de {fichier}...")
csvAPartirDeTextGrid(chemin_complet)
def main():
parser = argparse.ArgumentParser()
parser.add_argument("textgrid_folder", type=str, help="Chemin du dossier contenant les fichiers TextGrid")
args = parser.parse_args()
creerDossierDeCSV()
traiterDossierTextGrid(args.textgrid_folder)
if __name__ == "__main__":
main()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment