#python #machine-learning #nlp #ibm-cloud #speech-to-text
Вопрос:
Я пытаюсь выполнить диаризацию динамиков с помощью IBM speech to text. Я отправляю свой аудиофайл через API и получаю результаты в формате JSON, как показано ниже.
{
"results": [
{
"alternatives": [
{
"timestamps": [
[
"hello",
0.68,
1.19
],
[
"yeah",
1.47,
1.91
],
[
"yeah",
1.96,
2.12
],
[
"how's",
2.12,
2.59
],
[
"Billy",
2.59,
3.17
],
[
"good",
4.01,
4.30
]
]
"confidence": 0.82,
"transcript": "hello yeah yeah how's Billy good "
}
],
"final": true
}
],
"result_index": 0,
"speaker_labels": [
{
"from": 0.68,
"to": 1.19,
"speaker": 2,
"confidence": 0.52,
"final": false
},
{
"from": 1.47,
"to": 1.93,
"speaker": 1,
"confidence": 0.62,
"final": false
},
{
"from": 1.96,
"to": 2.12,
"speaker": 2,
"confidence": 0.51,
"final": false
},
{
"from": 2.12,
"to": 2.59,
"speaker": 2,
"confidence": 0.51,
"final": false
},
{
"from": 2.59,
"to": 3.17,
"speaker": 2,
"confidence": 0.51,
"final": false
},
{
"from": 4.01,
"to": 4.30,
"speaker": 1,
"confidence": 0.63,
"final": true
}
]
}
но я хочу, чтобы это было в таком формате ->
Speaker 2 - "Hello?"
Speaker 1 - "Yeah?"
Speaker 2 - "Yeah, how's Billy?"
Speaker 1 - "Good."
Есть ли какой-либо метод, который дает мне результаты в этом формате, или мне нужно написать свой собственный код?
и это мой код:
with open('/content/test.mp3','rb') as audio_file:
speech_recognition_results = speech_to_text.recognize(
audio=audio_file,
content_type='audio/mp3',
word_alternatives_threshold=0.9,
speaker_labels = True
).get_result()
print(json.dumps(speech_recognition_results, indent=2))
Комментарии:
1. Да, вы должны обрабатывать результаты в соответствии с вашими потребностями. Как вы видите, ораторы идентифицируются с определенной уверенностью. Что вы хотите сделать ниже некоторого уровня уверенности? Как вы хотите отформатировать вывод. Ваш выбор, но также и ваш код.