问题标签 [google-speech-to-text-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
593 浏览

c# - 如何使用 Google Cloud Speech (V1 API) 进行语音转文本 - 需要能够正确有效地处理超过 3 小时的音频文件

我正在寻找文档和资料,但还没有找到解决方案

已安装的 NuGet 包

还生成了 API 密钥

但是找不到正确的文档如何使用 API 密钥

此外,我希望能够上传很长的音频文件

那么上传长达 3 小时的音频文件并获得结果的正确方法是什么?

我有 300 美元的预算,所以应该足够了

这是我到目前为止的代码

此代码当前失败,因为我目前没有正确设置凭据,我不知道如何设置

我还有可以使用的服务帐户文件

在此处输入图像描述

我不想设置环境变量。我有 API 密钥和服务帐户 json 文件。如何手动设置?

0 投票
1 回答
113 浏览

google-cloud-platform - Google Speech API 的最佳采样率是多少?有 Google 员工或专家可以发表评论吗?

到目前为止,我已经测试了一个非常小的 16 kHz 和 48 kHz 的音频文件。我很想进行更大规模的测试,但正如你所知,这需要花钱。

48 kHz 采样率提供了更好的结果。但是,在文档中说最好是 16 kHz

所以我有点困惑

flac这里是我用 Google Speech to Text API 测试的 16 kHz 和 48 kHz文件

16 kHz:https ://drive.google.com/file/d/1MbiW3t86W68ZqENtDqD4XdNmEV7QZbZA/view?usp=sharing

48 kHz:https ://drive.google.com/file/d/1aLN1ptMJBwuYc6FdAk6CxcK1Ex4jI3vh/view?usp=sharing

在这里制作的成绩单

16kHz

48kHz

视频的原始采样率为 48 kHz

那么任何专家或员工都可以对此发表评论吗?

这些是我用来ffmpeg组成flac文件的 16 kHz 和 48 kHz 命令

0 投票
1 回答
592 浏览

google-cloud-platform - YouTube 的自动字幕产生比 Google Speech to Text API 更好的结果(型号:video,UseEnhanced:true)。这怎么可能?

这是我的 Google Speech to Text AI 设置

在此处输入图像描述

这是 Speech to Text AI 的输出文件:https ://justpaste.it/speechtotext2

这是 YouTube 自动字幕的输出文件:https ://justpaste.it/ytautotranslate

这是视频链接:https ://www.youtube.com/watch?v=IOMO-kcqxJ8&ab_channel=SoftwareEngineeringCourses-SECourses

这是提供给 Google Speech AI 的视频的音频文件:https ://storage.googleapis.com/text_speech_furkan/machine_learning_lecture_1.flac

在这里,我提供时间分配的 SRT 文件

YouTube 的 SRT:https ://drive.google.com/file/d/1yPA1m0hPr9VF7oD7jv5KF7n1QnV3Z82d/view?usp=sharing

Google Speech to Text API 的 SRT(由 YouTube 分配的时间):https ://drive.google.com/file/d/1AGzkrxMEQJspYenCbohUM4iuXN7H89wH/view?usp=sharing

我比较了一些句子,肯定 YouTube 的自动翻译更好

例如

谷歌语音转文本: Represent the **doctor** representation is one of the hardest part of computer AI you will learn about more about that in the future lessons.

YouTube 的自动字幕: represent the **data** representation is one of the hardest part of computer ai you will we will learn more about that in the future lessons

我检查了很多案例,YouTube 的猜对词要好得多。这怎么可能?

这是我用来提取视频音频的命令:ffmpeg -i "input.mkv" -af aformat=s16:48000:output.flac

0 投票
1 回答
239 浏览

ffmpeg - 比特率在 Google Speech To Text 转录的准确性中起什么作用?

我正在帮助客户转换视频文件ffmpeg,他们最初使用-b:a 64k的是将视频以 44100 的采样率(-ar 44100参数 in ffmpeg)转码为音频时使用的。他们的目标是他们希望使用 Google Cloud Speech To Text 生成最准确的转录API。

在梳理他们的文档时,我没有发现任何关于比特率如何影响转录准确性的信息。所以我的问题是——使用更高的比特率,比如128k帮助我获得更好的转录,还是没关系?

0 投票
1 回答
393 浏览

google-cloud-platform - 如何将动态 Google Cloud API 密钥从服务器传递到客户端?

目前,我正在测试 Google Cloud 的 Speech API 并想知道如何将动态 Google Cloud API 密钥从服务器传递给客户端应用程序。

语音功能将在客户端的应用程序(React Native)上。在对谷歌云 API 或会话的每个请求之前,我正在考虑从服务器端(Nodejs)动态生成 API 密钥,生命周期很短,然后传递到客户端。只有这样,客户才能使用 Google 服务。

主要担心的是我不想在客户端应用程序中嵌入 Google Cloud API 密钥,并且我想控制哪些客户端可以/不能使用该服务。有没有办法在服务器端动态生成 API 密钥并传递给客户端?谢谢。

更新:

我正在检查https://github.com/GoogleCloudPlatform/android-docs-samples/tree/master/speech/Speech并找到了建议:

This Android app uses JSON credential file locally stored in the resources. You should not do this in your production app. Instead, you should set up your own backend server that authenticates app users. The server should delegate API calls from your client app. This way, you can enforce usage quota per user. Alternatively, you should get the access token on the server side, and supply client app with it. The access token will expire in a short while.

这正是我想要做的,但任何人都可以建议我怎样才能做到这一点?谢谢。

在此处输入图像描述

我正在尝试找出如何在服务器后端获取第 2 步的 API 密钥。

0 投票
1 回答
415 浏览

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

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

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

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

更新:最初,我正在初始化识别配置,如下所示:

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

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

0 投票
0 回答
95 浏览

python - 有没有办法中断发送到 Google 以进行语音转文本的麦克风流?

我正在尝试编写一个 Python 脚本,该脚本将通过连接到 PC 的麦克风转录对话。我的特定应用程序将播放广播比赛的互联网流,让麦克风收听扬声器,并将结果转录/附加到文本文件中。

我在这里使用谷歌为他们的 Python 语音转文本示例提供的示例: https ://cloud.google.com/speech-to-text/docs/streaming-recognize#speech-streaming-recognize-php

以及这里的 GitHub 示例: https ://github.com/googleapis/python-speech/blob/master/samples/microphone/transcribe_streaming_mic.py

该示例使用 pyaudio。

我已经让这个例子按预期工作。它会听麦克风,将请求发送给 Google,然后我会取回转录内容。我说话并收回我所说的话。我还可以根据需要将此文本写入文件。

作为另一项测试,我启动了一个谈话电台供它收听。我注意到的是,流等待通话中的休息或暂停以将完整的“请求”发送给 Google。在流生成器中,它正在等待块为无。取决于谁在说话,停顿很少而且相差甚远。对于我的特殊需要,时间至关重要。我不能等待 30 秒、一分钟或更长时间才能收到回复。

我知道进行更多 API 调用可能会花费更多,但我正在寻找一种方法来切断麦克风或每 10、20 或可配置的秒数添加暂停。我不想等待它暂停,而是想切断它并让它开始缓冲下一个请求。

有没有人从谷歌修改过这个示例代码,或者做过任何允许 MicrophoneStream 类在预设秒数后自行停止的自定义代码?

感谢您的任何帮助,您可以提供。

0 投票
0 回答
20 浏览

google-api - 语音到文本谷歌服务所需的自定义格式化程序

在项目中,我们使用语音到文本的谷歌服务。

它带来了很多优势,一方面简化了音频处理,另一方面我们注意到特殊的数据格式,例如:

字段类型:金钱

字段类型:日期

我们试图查看class-token,但这种方法没有提供满足我们需求的工具。我们已经检查了几次 API,研究了行为——结果还是一样。我相信我们错过了一些东西,并希望得到社区的帮助。

附言

我们的项目语言是java并且我们相信在问题的范围内它并不那么重要。

0 投票
0 回答
123 浏览

javascript - 通过 Flask 后端将实时录音从 HTML 前端发送到 Google Cloud Speech

好的,所以我正在处理一个类项目,我正在尝试将使用 javascript 的 navigator.mediaDevices.getUserMedia 和 MediaRecorder 类制作的录音发送到我的 Web 应用程序的后端(用 Python、Flask 编写)和 Google Speech到文本 API (google-cloud-speech)

到目前为止,我已经到了录制的地步,但我似乎无法成功地将它发送到 Google Cloud API。这是我正在尝试的方法:

  1. 使用 navigator.mediaDevices.getUserMedia 识别用户的麦克风
  2. 使用生成的音频流制作 MediaRecorder 对象
  3. 使用该记录器对象用生成的音频制作一个 blob(使用 {'type' : 'audio/flac'})
  4. Base64Encode写入一个隐藏的表单元素,提交对应的表单
  5. 从那里,生成的 POST 请求将发送到我的 Python Flask 后端,在那里它将 Base64 编码的字符串作为...字符串读取
  6. 尝试使用 google-cloud-speech 客户端解码文本

它不工作。我正在使用 Python 库,我似乎无法直接发送 base64 字符串(因为 Python 库需要字节)。我已经尝试将字符串 base64 解码回字节,但是当我通过 API 运行它时,我似乎总是得到空 ([]) 结果。在简单地查找之后,似乎采样率可能是一个问题。我尝试将 navigator.mediaDevices.getUserMedia() 对象的采样率设置为 16000——构造函数如下所示:

我的 client.recognize() 调用(在我的 Python 后端)的配置部分如下所示:

有谁知道这里有什么问题?

0 投票
2 回答
518 浏览

php - 如何在 PHP 应用程序中验证 Google Cloud Speech-To-Text 客户端?

对于 PHP 应用程序中的 Cloud Speech-To-Text 客户端身份验证,我使用以下内容:

由于某些原因,我收到错误:

致命错误:未捕获的 GuzzleHttp\Exception\ClientException:客户端错误:POST https://oauth2.googleapis.com/token导致400 Bad Request响应:{"error":"invalid_scope","error_description":"提供的 OAuth 范围或 ID 令牌受众无效。"}

上述身份验证方法在 Text-To-Speech API 中完美运行。

有什么问题/遗漏?