如何查找录制的mp3文件中的讲话者数量?找出有多少个说话者

问题描述 投票:0回答:1

我正在开发面试情绪分析代码,其中我需要将录制的面试文件(mp3)转换为文本,并且从文本数据中我需要找到候选人的情绪。

但问题是,当我使用 IBM watson 语音转文本 API 将 mp3 文件转换为文本时,它显示了面试官和受访者的文本数据。

那么,如何查找文件中不同的人数呢?以及如何查找特定受访者的文本数据?

我写了这段代码,请帮助我

import json
from os.path import join, dirname
from ibm_watson import SpeechToTextV1
from ibm_watson.websocket import RecognizeCallback, AudioSource

from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
authenticator = IAMAuthenticator('api key')
speech_to_text = SpeechToTextV1(
authenticator=authenticator
)
speech_to_text.set_service_url('url')

class MyRecognizeCallback(RecognizeCallback):
def __init__(self):
RecognizeCallback.__init__(self)

    def on_data(self, data):
        print(json.dumps(data, indent=2))
    
    def on_error(self, error):
        print('Error received: {}'.format(error))
    
    def on_inactivity_timeout(self, error):
        print('Inactivity timeout: {}'.format(error))

myRecognizeCallback = MyRecognizeCallback()

with open(join(dirname(__file__), './.', 'sample_2.mp3'),'rb') as audio_file:
audio_source = AudioSource(audio_file)

speech_to_text.recognize_using_websocket(audio=audio_source,content_type='audio/mp3',recognize_callback=myRecognizeCallback,model='en-US_BroadbandModel',max_alternatives=1)
json speech-to-text ibm-watson
1个回答
0
投票

要获取发言者的数量,我相信您应该首先将

speaker_labels
参数设置为 True。您应该解析响应并使用
speaker_labels
键对不同的发言者进行计数,例如使用
set
以避免对同一发言者进行两次计数。

© www.soinside.com 2019 - 2024. All rights reserved.