当前位置: 首页 > 知识库问答 >
问题:

如何在使用Azure认知语音翻译API中使用python sdk识别说话人?

樊琦
2023-03-14

我试图使用修改的基于事件的合成代码示例提供的azure文档语音到语音翻译。但是,在这个过程中,我也希望识别扬声器(Seaker1,speaker2),但是我在Python SDK中没有看到一个函数可以帮助我识别扬声器作为Speech=to-Text翻译的一部分。有人能建议在语音到文本的翻译过程中识别说话人的方法吗?下面是代码片段:

def translate_speech_to_text():

    translation_config = speechsdk.translation.SpeechTranslationConfig(subscription=speech_key, region=service_region)
    translation_config.speech_recognition_language = from_language
    translation_config.add_target_language(to_language)
    translation_config.voice_name = "en-GB-Susan"

    translation_config.request_word_level_timestamps()
    translation_config.output_format = speechsdk.OutputFormat(0)

    audio_input = speechsdk.AudioConfig(filename=filename)
    recognizer = speechsdk.translation.TranslationRecognizer(translation_config = translation_config, audio_config = audio_input)

    done = False

    def stop_cb(evt):
        """callback that stops continuous recognition upon receiving an event `evt`"""
        #print('CLOSING on {}'.format(evt))
        recognizer.stop_continuous_recognition()
        nonlocal done
        done = True

    all_results = []
    def handle_final_result(evt):
        #all_results.append(evt.result.text)
        #all_results.append(evt.result.translations['en'])
        all_results.append(evt.result.json)
    
    recognizer.recognized.connect(handle_final_result)
    # Connect callbacks to the events fired by the speech recognizer
    recognizer.recognizing.connect(lambda evt: print('RECOGNIZING: {}'.format(evt)))
    recognizer.recognized.connect(lambda evt: print('RECOGNIZED: {}'.format(evt)))
    recognizer.session_started.connect(lambda evt: print('SESSION STARTED: {}'.format(evt)))
    recognizer.session_stopped.connect(lambda evt: print('SESSION STOPPED {}'.format(evt)))
    #recognizer.canceled.connect(lambda evt: print('CANCELED {}'.format(evt)))
    recognizer.session_stopped.connect(stop_cb)
    recognizer.canceled.connect(stop_cb)
    
    def synthesis_callback(evt):
        print('Audio: {}'.format(len(evt.result.audio)))
        print('Reason: {}'.format(evt.result.reason))
        with open('out.wav', 'wb') as wavfile:
            wavfile.write(evt.result.audio)
   
    recognizer.synthesizing.connect(synthesis_callback)
    recognizer.start_continuous_recognition()    

    while not done:
        time.sleep(.5)
    
    print("Printing all results:")
    print(all_results)

translate_speech_to_text()

共有1个答案

太叔何平
2023-03-14

如果要识别说话人,应使用语音服务

文本无关-识别单个说话人

Speech Services有一个完整的SDK,使用C#C++JavaScriptREST,并且可以执行说话人识别。(我搜索了Python SDK,但没有找到可以直接用于识别它的方法。)

2.建议使用request发送http post请求。

 类似资料:
  • 请帮助建议我的问题在下面。 我尝试使用这里的示例代码创建注册 {“错误”:{“代码”:“未指定”,“消息”:“由于订阅密钥无效,访问被拒绝。请确保订阅了试图调用的API并提供正确的密钥。”}} 错误消息很奇怪,因为我使用了与成功创建配置文件相同的订阅密钥。

  • 我正在尝试使用适用于Xamarin Android的Microsoft认知语音从麦克风构建连续语音识别。我认为没有Xamarin的库,所以我稍微修改了“Xamarin。认知。BingSpeech”库(endpoint等)以使其正常工作。我有一些问题 我想通过以下教程连接到microsoft web套接字https://docs.microsoft.com/en-us/azure/cognitive

  • 我正在寻找一种匹配已知数据集的方法,比如说一个MP3或wav文件的列表,每个文件都是一个人说话的样本。在这一点上,我知道ABC文件是关于X个人的。 然后,我想再抽取一个样本,根据当时已知的数据集,进行一些语音匹配,以显示这个语音最有可能是谁。 此外,我不一定在乎这个人说了什么,只要我能找到匹配的,即我不需要任何抄写或其他方式。 我知道CMU狮身人面像不做语音识别,它主要用于语音到文本,但我见过其他

  • 问题内容: 我正在尝试使用Google语音识别API。这是我编写的代码: http://pastebin.com/zJEhnJ74 有用。我从服务器得到答案: 现在的问题是“状态:5”。实际上,这是状态码: 我的问题是“音频文件不正确”。我不知道这是不是.flac文件错误(您可以在此处下载我的测试.flac文件:http ://www21.zippyshare.com/v/61888405/fil

  • 如何将音频转录成文本在iOS10使用Speech.framework?

  • 我正在努力寻找使用谷歌云语音API进行实时连续语音识别的例子。我的要求是使用麦克风,检测语音,并在用户说话时进行转录。 我知道他们的RESTAPI没有这种支持,所以我研究了grpc示例,包括他们提供的示例。但它们似乎都是用户可以上传音频并检测语音的例子。 我在Java,谷歌grpc也支持java。有人遇到一个很好的例子,展示了如何通过麦克风持续进行这种识别吗?