Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qbe
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lifo
A
Anaïs Halftermeyer
queryByExample
qbe
Commits
b62ee38e
Commit
b62ee38e
authored
Jun 21, 2025
by
Elias
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
script added
parent
575619eb
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
84 additions
and
0 deletions
+84
-0
TrainValTest1_csvAPartirDeTextGrid.py
TrainValTest1_csvAPartirDeTextGrid.py
+84
-0
No files found.
TrainValTest1_csvAPartirDeTextGrid.py
0 → 100755
View file @
b62ee38e
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
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment