katospiegel commited on
Commit
51cca5c
1 Parent(s): 9471b7a

Bug in the method to allow inter speaker turns

Browse files
Files changed (1) hide show
  1. 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
- # 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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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