gpt4 book ai didi

python - 使用Python将云语音API的结果导出到JSON文件

转载 作者:行者123 更新时间:2023-12-04 19:28:27 25 4
gpt4 key购买 nike

我正在尝试通过 Google Speech API 将音频文件转换为印度语言的文本。 API 返回类型为“google.cloud.speech_v1.types.SpeechRecognitionAlternative”的对象。我正在尝试将结果导出到 .json 文件。我对python很陌生。这是我在 python 中做的第一个项目。

    import io
import os
import pickle

# Imports the Google Cloud client library
from google.cloud
import speech
from google.cloud.speech
import enums
from google.cloud.speech
import types

client = speech.SpeechClient()

audio = types.RecognitionAudio(uri = "gs://storage-staples-canada/client-data/TapTapTap.wav")
config = types.RecognitionConfig(
encoding = enums.RecognitionConfig.AudioEncoding.LINEAR16,
sample_rate_hertz = 16000,
language_code = 'hi-IN',
enable_word_time_offsets = True,
speech_contexts = [speech.types.SpeechContext(phrases = ['एक जंगल था।', 'ख़ूब घना जंगल।', 'एक दिन झमाझम पानी बरसा।', 'थोड़ी देर बाद बारिश रुक गई। सारे जानवर बाहर निकले।', 'तभी आवाज़ आई टप टप टपक सब घबरा गए।', 'सबने सोचा यह कैसी आवाज़ है? सारे बड़े जानवर डर कर भाग गए।', 'चींटी ने कहा- चलो साथियो, हम टप- टप- टपक को ढूँढें। चूहा बोला- शाबाश चींटी बहन!', 'जुगनू बोला- मैं आगे रहूँगा। बिल्ली बोली- मैं साथ हूँ।', 'ख़रगोश ने कहा- मैं भी पीछे नहीं रहूँगा। सब टप- टप- टपक को ढूँढने चले।', 'फिर सबने देखा, बरसात का पानी पत्तों पर टपक रहा था', 'टप- टप- टपक।'])], )

operation = client.long_running_recognize(config, audio)
print('Waiting for operation to complete...')
response = operation.result(timeout = 90)

# Gets the time - offsets of each of the words in the audio

for result in response.results:
alternative = result.alternatives[0]# The first alternative is the most likely one
for this portion.
print('Transcript: {}'.format(result.alternatives[0].transcript))
print('Confidence: {}'.format(result.alternatives[0].confidence))
for word_info in alternative.words:
word = word_info.word
start_time = word_info.start_time
end_time = word_info.end_time
print('Word: {}, start_time: {}, end_time: {}'.format(
word,
start_time.seconds + start_time.nanos * 1e-9,
end_time.seconds + end_time.nanos * 1e-9))

当我尝试将 API 的结果(存储在上面代码中的响应变量中)转换为字典时。我收到的错误消息是“TypeError: 'SpeechRecognitionAlternative' object is not iterable”。你能帮我将结果转换并导出到 .json 文件吗?

最佳答案

我建议使用谷歌 protobuf 库中的 protobuf↔json 转换器:

from google.protobuf.json_format import MessageToJson

# the below line is taken from the code above, which contains the google api results
response = operation.result(timeout = 90)
result_json = MessageToJson(response)

然后用json.dump写result_json。请查看 How do I write JSON data to a file?

关于python - 使用Python将云语音API的结果导出到JSON文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48787264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com