使用 Google Speech 时从 Google Cloud Storage 访问音频文件

2024-05-10

我使用下面的这段代码使用 Google Speech 成功解析了包含语音的 .wav 文件,并将其转换为文本。

但我想访问另一个 .wav 文件,该文件已放置在 Google Cloud Storage(公开)上,而不是本地硬盘上。为什么不简单地改变

speech_file = 'my/local/system/sample.wav'

to
speech_file = 'https://console.cloud.google.com/storage/browser/speech_proj_files/sample.wav'

工作可以接受吗?

这是我的代码:

speech_file = 'https://console.cloud.google.com/storage/browser/speech_proj_files/sample.wav'

DISCOVERY_URL = ('https://{api}.googleapis.com/$discovery/rest?'
                 'version={apiVersion}')


def get_speech_service():
    credentials = GoogleCredentials.get_application_default().create_scoped(
        ['https://www.googleapis.com/auth/cloud-platform'])
    http = htt|plib2.Http()
    credentials.authorize(http)

    return discovery.build(
        'speech', 'v1beta1', http=http, discoveryServiceUrl=DISCOVERY_URL)

def main(speech_file):
    """Transcribe the given audio file.

    Args:
        speech_file: the name of the audio file.
    """
    with open(speech_file, 'rb') as speech:
        speech_content = base64.b64encode(speech.read())

    service = get_speech_service()
    service_request = service.speech().syncrecognize(
        body={
            'config': {
                'encoding': 'LINEAR16',  # raw 16-bit signed LE samples
                'sampleRate': 44100,  # 16 khz
                'languageCode': 'en-US',  # a BCP-47 language tag
            },
            'audio': {
                'content': speech_content.decode('UTF-8')
                }
            })
    response = service_request.execute()
    return response

我不确定为什么你的方法不起作用,但我想提供一个快速建议。

Google Cloud Speech API 本身支持 Google Cloud Storage 对象。不必下载整个对象然后将其上传回 Cloud Speech API,只需通过交换此行来指定对象即可:

        'audio': {
            # Remove this: 'content': speech_content.decode('UTF-8')
            'uri': 'gs://speech_proj_files/sample.wav'  # Do this!
            }

另一项建议。您可能会发现谷歌云 https://googlecloudplatform.github.io/google-cloud-python/Python 库更易于使用。尝试这个:

from google.cloud import speech
speech_client = speech.Client()

audio_sample = speech_client.sample(
    content=None,
    source_uri='gs://speech_proj_files/sample.wav',
    encoding='LINEAR16',
    sample_rate_hertz= 44100)
results_list = audio_sample.sync_recognize(language_code='en-US')

这里有一些很好的例子:https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/speech/cloud-client https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/speech/cloud-client

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Google Speech 时从 Google Cloud Storage 访问音频文件 的相关文章

  • 将声音图形化地表示为波

    我创建了一个记录和播放声音的应用程序 我正在寻找一种显示简单波形的方法 记录声音的表示 不需要动画 只需一个简单的图表 如果可以选择波的子集也很好 当然更好 也播放该部分 总而言之 我正在寻找什么 一种以图形方式将录制的声音表示为波的方法
  • 播放选定的音频,同时暂停/重置其他音频

    我有两个通过按钮的单击事件播放的音频元素 如果选择了另一个元素 我已成功地暂停其中一个元素 但还需要将暂停元素设置回 0 0 秒 即暂停和重置 我知道 Javascript 目前没有stop 导致的方法假设这将通过设置其来完成current
  • Google Cloud Storage (GCS) 中的文件数量有限制吗?

    我相信不应该有任何限制 但只是想确认一下 官方文档中没有提及 Google Cloud Storage GCS 中的文件数量有限制吗 如果 GCS 中有大量文件 是否会对性能 访问和写入操作 产生影响 文件名长度是否有限制 因为我可以使用文
  • 使用 Android 播放任意音调

    有没有办法让Android发出任意频率的声音 意思是 我不想预先录制声音文件 我环顾四周 音调发生器 http developer android com reference android media ToneGenerator html
  • Android SoundPool 堆限制

    我正在使用 SoundPool 加载多个声音剪辑并播放它们 据我所知 它的功能 100 正确 但在 load 调用期间 我的日志中充斥着以下内容 06 09 11 30 26 110 ERROR AudioCache 23363 Heap
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • 使用到达时间差对信号进行三边测量

    我在寻找或实现寻找信号源的算法时遇到一些麻烦 我的工作目标是找到声音发射器的位置 为了实现这一点 我使用了三个麦克风 我正在使用的技术是多点定位这是基于到达时间差 The 到达时间差使用发现每个麦克风之间互相关接收到的信号 我已经实现了算法
  • Java - 无缝改变循环剪辑的音量?

    我有一个循环剪辑 我像这样改变音量 clip stop clip flush FloatControl fc FloatControl clip getControl FloatControl Type MASTER GAIN fc set
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • 如何让 JavaScript 发出蜂鸣声?

    我希望我的网页在用户超出我的最大字符限制时发出蜂鸣声
  • html 可嵌入 flash wav 播放器

    我需要一个可在 IE FF 和 Chrome 中播放 wav 文件的嵌入式音频播放器 目前无法转换为 mp3 或任何其他格式 该播放器应该非常简单 只有一个播放 暂停按钮 也许还有一个时间轴栏 用户可以单击该时间轴栏来转到音频的特定部分 还
  • 如何更改Firebase默认存储桶?

    我有2个存储桶 一个来自Google云存储 一个由firebase创建 firebase创建的存储桶是默认的 我想更改默认存储桶并删除firebase创建的存储桶 您无法从 Firebase 控制台执行此操作 您需要转到 Google Cl
  • 使用 VBScript 切换当前活动声音设备?

    我想在连接到我的计算机 Windows 7 32 位 的两个音频设备之间切换 我看了一下question https stackoverflow com questions 35709 change active sound card on
  • 如何让位置音频在 SceneKit 中工作?

    我在使位置音频在 SceneKit 中工作时遇到问题 从 Xcode 生成的 SceneKit 游戏模板开始 我将以下代码添加到handleTap 方法的末尾 let ship scnView scene rootNode childNod
  • 使用react-native测量音频的响度

    我正在创建一个应用程序 Android 来使用本机反应录制手机中的语音 一项要求是实时测量声音的响度并基于它制作动画 我尝试使用react native audio库 但问题是响度监控仅在IOS中支持 我检查了世博会音频库 但找不到方法 有
  • 网络音频 API 和多输入麦克风设备

    我有一个带有 4 个输入麦克风的音频设备 有谁知道我是否可以通过 Web 音频 API 使用所有这些输入 截至 2023 年 6 月 17 日 这在基于 chromium 的浏览器中是不可能的 这是一个问题 453876 https bug
  • 如何用Java捕获音频数据

    我想访问我的麦克风用 Java 录制的音频数据 我该怎么做呢 我的目标是保存录制的音频数据并同时向用户播放 如果您不需要 JMF 中的任何附加功能 我会避免使用它 因为开发已经停止 最后一个版本是 2004 年 它与 Java 6 存在兼容
  • 使用 Javascript/Web Audio API 访问/处理系统音频

    是否可以使用 Web Audio API 访问系统音频 以便对其进行可视化或应用均衡器 看起来可以将系统音频连接到 Web Audio API 可以访问的输入设备 即Web Audio API 获取声卡的输出 https stackover
  • 如何禁用 WebBrowser 控件中的点击声音

    我使用 Javascript 单击网络浏览器控件中的链接 但我不想听到IE的 咔哒 声 有什么办法可以做到这一点吗 P S 我不想更改系统设置 我见过这个 如何仅在您的应用程序中禁用网络浏览器 点击声音 https stackoverflo
  • 使用javascript上传到谷歌云存储签名的url

    使用以下代码 我可以上传到谷歌云存储中的公共可写存储桶 allUsers有写权限 但是 如果存储桶不可公开写入 则会收到 401 未经授权的错误 我不希望存储桶可公开写入 var file scope myFile var fileData

随机推荐