Google Cloud Speech-To-Text API 响应不返回单词

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

我正在尝试使用 Google Cloud Speech-To-Text API 和 Python 在我的应用程序中实现 Speech-To-Text。我正确地得到了转录,但是响应仅包含转录和置信度,而不包含单独的单词。如果我尝试访问这些单词,我会得到一个空列表。

为了访问结果,我使用以下代码:

best_alternative = result.alternatives[0]
word = best_alternative
transcript = best_alternative.transcript
confidence = best_alternative.confidence
print(f'Transcript: {transcript}')
print(f'Confidence: {confidence:.0%}')

打印出

best_alternative.__dict__
给了我成绩单和信心,但不是文字。有什么特殊的方法可以访问成绩单中的单词还是我遗漏了什么?

更新: 最初,我是这样初始化识别配置的:

config = speech.RecognitionConfig(
    encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
    sample_rate_hertz=RATE,
    language_code=lan_code)
streaming_config = speech.StreamingRecognitionConfig(
        config=config,
        interim_results=True,
        enable_speaker_diarization=True)

使用此配置,返回的响应不包含单词,仅包含文字记录和置信度。然后我将配置更改为:

config = speech.RecognitionConfig()
config.sample_rate_hertz = 16000
config.language_code = 'en-US'
config.encoding = speech.RecognitionConfig.AudioEncoding.LINEAR16
config.enable_speaker_diarization = True

这最终给了我文字、文字和信心。可以使用以下方式访问这些单词:

response.results[0].alternatives[0].words[i].word


    
python speech-recognition speech-to-text google-cloud-speech google-speech-to-text-api
3个回答
0
投票

根据 Cloud Speech-to-Text API REST documentation

speech.recognize
方法针对每个转录结果 results[] 对象沿着
SpeechRecognitionResult
返回语音识别响应,而 SpeechRecognitionAlternative 检索
transcript
confidence
 words[]
在特定假设内。

查看 Python Google google-cloud-speech 库实现,我承认对于真正的

SpeechRecognitionAlternative()
class,我们可以发现每个识别单词的特定于单词的信息列表 WordInfo

print("Words: {}".format(result.alternatives[0].words[0].word))

0
投票

设置 RecognitionFeatures 时,您需要指定 both

enable_word_time_offsets=True
enable_word_confidence=True
。仅请求时间偏移,
words
字段对我们来说始终为空。

来源:我在 Cloud Speech-to-Text gRPC API 中遇到了同样的问题,WordInfo 数组始终为空。问题的UPDATE部分提供的答案有点神秘,但让我们相信这是默认配置值的一些问题。


-1
投票

我正在研究这个问题,花了很多时间后,我意识到音频文件必须满足speech.RecognitionConfig 格式。我采用了 FFmpeg 库并根据pepe.RecognitionConfig 格式转换了我的音频文件。对话完成后,我只需将audioBytes对话的输出文件路径传递给recognitionAudio,就得到了语音转录的文本。就是这样。

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