Spaces:
Runtime error
Runtime error
Commit
路
51cca5c
1
Parent(s):
9471b7a
Bug in the method to allow inter speaker turns
Browse files- helpers.py +86 -24
helpers.py
CHANGED
@@ -79,44 +79,106 @@ def dataframe_a_lista(df):
|
|
79 |
|
80 |
# return lineas_transcripcion, nombre_archivo
|
81 |
|
82 |
-
def generar_transcripcion(diccionario):
|
83 |
-
|
84 |
-
|
85 |
|
86 |
-
|
87 |
-
|
88 |
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
|
99 |
-
|
100 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
|
102 |
# Creamos una lista para almacenar las l铆neas de la transcripci贸n
|
103 |
lineas_transcripcion = []
|
104 |
|
105 |
-
# Iteramos sobre los
|
106 |
-
|
107 |
-
|
108 |
-
|
|
|
|
|
109 |
|
110 |
-
#
|
111 |
-
|
|
|
|
|
|
|
112 |
|
113 |
-
# Agregamos
|
|
|
114 |
linea = parrafo_con_speaker
|
115 |
-
|
116 |
-
# Agregamos la l铆nea a la lista de la transcripci贸n
|
117 |
lineas_transcripcion.append(linea)
|
|
|
|
|
|
|
118 |
|
119 |
# Guardamos la transcripci贸n en un archivo de texto
|
120 |
nombre_archivo = guardar_en_archivo(lineas_transcripcion)
|
121 |
|
122 |
return lineas_transcripcion, nombre_archivo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
|
80 |
# return lineas_transcripcion, nombre_archivo
|
81 |
|
82 |
+
# def generar_transcripcion(diccionario):
|
83 |
+
# # Obtenemos la lista de segmentos del diccionario
|
84 |
+
# segmentos = diccionario['segments']
|
85 |
|
86 |
+
# # Creamos un diccionario para almacenar los textos de cada speaker
|
87 |
+
# textos_por_speaker = {}
|
88 |
|
89 |
+
# # Iteramos sobre los segmentos del diccionario
|
90 |
+
# for segmento in segmentos:
|
91 |
+
# # Obtenemos los valores del segmento
|
92 |
+
# speaker = segmento['speaker']
|
93 |
+
# texto = segmento['text']
|
94 |
|
95 |
+
# # Si el speaker no est谩 en el diccionario, lo agregamos
|
96 |
+
# if speaker not in textos_por_speaker:
|
97 |
+
# textos_por_speaker[speaker] = []
|
98 |
|
99 |
+
# # Agregamos el texto al diccionario
|
100 |
+
# textos_por_speaker[speaker].append(texto)
|
101 |
+
|
102 |
+
# # Creamos una lista para almacenar las l铆neas de la transcripci贸n
|
103 |
+
# lineas_transcripcion = []
|
104 |
+
|
105 |
+
# # Iteramos sobre los speakers y sus textos
|
106 |
+
# for speaker, textos in textos_por_speaker.items():
|
107 |
+
# # Creamos un p谩rrafo con todos los textos del speaker
|
108 |
+
# parrafo = ' '.join(textos)
|
109 |
+
|
110 |
+
# # Agregamos el speaker al principio del p谩rrafo
|
111 |
+
# parrafo_con_speaker = f"{speaker}: {parrafo}"
|
112 |
+
|
113 |
+
# # Agregamos la l铆nea de la transcripci贸n
|
114 |
+
# linea = parrafo_con_speaker
|
115 |
+
|
116 |
+
# # Agregamos la l铆nea a la lista de la transcripci贸n
|
117 |
+
# lineas_transcripcion.append(linea)
|
118 |
+
|
119 |
+
# # Guardamos la transcripci贸n en un archivo de texto
|
120 |
+
# nombre_archivo = guardar_en_archivo(lineas_transcripcion)
|
121 |
+
|
122 |
+
# return lineas_transcripcion, nombre_archivo
|
123 |
+
|
124 |
+
def generar_transcripcion(diccionario):
|
125 |
+
# Obtenemos la lista de segmentos del diccionario
|
126 |
+
segmentos = diccionario['segments']
|
127 |
|
128 |
# Creamos una lista para almacenar las l铆neas de la transcripci贸n
|
129 |
lineas_transcripcion = []
|
130 |
|
131 |
+
# Iteramos sobre los segmentos del diccionario
|
132 |
+
i = 0
|
133 |
+
while i < len(segmentos):
|
134 |
+
# Obtenemos el speaker y el texto del segmento actual
|
135 |
+
speaker_actual = segmentos[i]['speaker']
|
136 |
+
texto_actual = segmentos[i]['text']
|
137 |
|
138 |
+
# Buscamos el siguiente segmento con un speaker diferente
|
139 |
+
j = i + 1
|
140 |
+
while j < len(segmentos) and segmentos[j]['speaker'] == speaker_actual:
|
141 |
+
texto_actual += ' ' + segmentos[j]['text']
|
142 |
+
j += 1
|
143 |
|
144 |
+
# Agregamos el texto del speaker actual a la transcripci贸n
|
145 |
+
parrafo_con_speaker = f"{speaker_actual}: {texto_actual}"
|
146 |
linea = parrafo_con_speaker
|
|
|
|
|
147 |
lineas_transcripcion.append(linea)
|
148 |
+
|
149 |
+
# Actualizamos el 铆ndice para el siguiente speaker
|
150 |
+
i = j
|
151 |
|
152 |
# Guardamos la transcripci贸n en un archivo de texto
|
153 |
nombre_archivo = guardar_en_archivo(lineas_transcripcion)
|
154 |
|
155 |
return lineas_transcripcion, nombre_archivo
|
156 |
+
|
157 |
+
|
158 |
+
def crear_diccionario(json_data):
|
159 |
+
# Obtenemos la lista de segmentos del JSON
|
160 |
+
segmentos = json_data['segments']
|
161 |
+
|
162 |
+
# Creamos los diccionarios para almacenar los datos
|
163 |
+
diccionario = {'start_time': [], 'speaker': [], 'word': [], 'score': []}
|
164 |
+
|
165 |
+
# Iteramos sobre los segmentos del JSON
|
166 |
+
for segmento in segmentos:
|
167 |
+
# Obtenemos los valores del segmento
|
168 |
+
start_time = segmento['start']
|
169 |
+
speaker = segmento['speaker']
|
170 |
+
palabras = segmento['words']
|
171 |
+
|
172 |
+
# Iteramos sobre las palabras del segmento
|
173 |
+
for palabra in palabras:
|
174 |
+
# Obtenemos los valores de la palabra
|
175 |
+
word = palabra['word']
|
176 |
+
score = palabra['score']
|
177 |
+
|
178 |
+
# Agregamos los valores al diccionario
|
179 |
+
diccionario['start_time'].append(start_time)
|
180 |
+
diccionario['speaker'].append(speaker)
|
181 |
+
diccionario['word'].append(word)
|
182 |
+
diccionario['score'].append(score)
|
183 |
+
|
184 |
+
return diccionario
|