Ниже вы можете найти файл json. Этот файл содержит результаты речи.
Текущая ситуация:
Вы можете увидеть «CombinedResults», содержащий весь текст. В моем примере:
эй, доброе утро, это Х, я работаю в качестве сотрудника, и это всего лишь аудиофайл для проверки "
Желаемая ситуация
Вместо всего текста я хочу видеть молчание в секундах и в разговоре.
эй, доброе утро [секунд: 3.1] это Х, я работаю в качестве сотрудника, и это всего лишь аудиофайл для проверки "
Как мне решить эту проблему?
Есть возможность получить желаемый результат. Что я думаю, что мне нужно сделать:
L oop через «SegmentResults» и сохранить A). "OffsetInSeconds", B). "DurationInSeconds", C). «NBest» -> «Лексический» (содержащий текст).
После этого этот расчет может помочь нам с вычислением «секунд»:
('OffsetInSeconds' + 'DurationInSeconds' ) предыдущего 'SegmentResult' - ('OffsetInSeconds') текущего 'SegmentResult'
В этом примере: разница между 0,57 + 1,67 = 2,24 и 5,34 = 3,1 секунды.
Я пытался закодировать это, но я застрял. Почему? Потому что я могу рассчитать «OffsetInSeconds» + «DurationInSeconds» для текущего сегмента (где я сейчас в цикле). Однако тогда я скучаю по предыдущему расчету. Также получение всего текста в желаемом выводе является проблемой.
Надеюсь, кто-нибудь может помочь. Заранее большое спасибо!
# Focus on the SegmentResults
All_result_list = Test_JSON["AudioFileResults"][0].get("SegmentResults")
# Loop over the SegmentResults, to get each Segment separately
for speech_result in All_result_list:
print(type(speech_result))
#print(speech_result)
Pause_Time = 0
Off_Set_Seconds = speech_result.get('OffsetInSeconds')
Duration_Seconds = speech_result.get('DurationInSeconds')
print(Off_Set_Seconds)
print(Duration_Seconds)
Text_All = speech_result.get('NBest')
for correct_text in Text_All:
Text = correct_text.get('Lexical')
print(Text)
Пожалуйста, найдите здесь файл json:
Test_JSON = {
"AudioFileResults": [
{
"AudioFileName": "Channel.0.wav",
"AudioFileUrl": null,
"AudioLengthInSeconds": 29.76,
"CombinedResults": [
{
"ChannelNumber": null,
"Lexical": "hey good morning this is X from am i'm working as a employee and this is just an audio file to test",
"ITN": "hey good morning this is X from am i'm working as a employee and this is just an audio file to test",
"MaskedITN": "Hey good morning This is X from am I'm working as a employee and this is just an audio file to test",
"Display": "Hey good morning. This is X from am I'm working as a employee and this is just an audio file to test"
}
],
"SegmentResults": [
{
"RecognitionStatus": "Success",
"ChannelNumber": null,
"SpeakerId": null,
"Offset": 5700000,
"Duration": 16700000,
"OffsetInSeconds": 0.57,
"DurationInSeconds": 1.67,
"NBest": [
{
"Confidence": 0.9073331,
"Lexical": "hey good morning",
"ITN": "hey good morning",
"MaskedITN": "Hey good morning",
"Display": "Hey good morning.",
"Sentiment": null,
"Words": null
}
]
},
{
"RecognitionStatus": "Success",
"ChannelNumber": null,
"SpeakerId": null,
"Offset": 53400000,
"Duration": 66700000,
"OffsetInSeconds": 5.34,
"DurationInSeconds": 6.67,
"NBest": [
{
"Confidence": 0.8709568,
"Lexical": "this is X from am i'm working as a employee and this is just an audio file to test",
"ITN": "this is X from am i'm working as a employee and this is just an audio file to test",
"MaskedITN": "This is X from am I'm working as a employee and this is just an audio file to test",
"Display": "This is X from am I'm working as a employee and this is just an audio file to test.",
"Sentiment": null,
"Words": null
}
]
}
]
}
]
}