我使用 c# 创建了一个控制台应用程序。我使用了谷歌云语音 api。我按照这个示例应用程序来创建应用程序。为了验证语音 api,我在 main 方法中编写了以下代码
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "path-to-json-file", EnvironmentVariableTarget.Process);
Run Code Online (Sandbox Code Playgroud)
一切正常。我的问题,我必须将 exe 与 json 文件一起发送。我不想公开 json 文件。如何在代码中嵌入 json 文件内容或在没有 json 文件的情况下进行身份验证?这样我只能将exe发送给用户。
对此的任何帮助将不胜感激。
谢谢。
在文档页面https://cloud.google.com/speech/ 中有一个演示示例,它通过浏览器收听语音并在后台使用 API。此演示的源是否可用?
如果没有,语音 API 将使用 flac 文件。是否有任何开源项目可以从浏览器中记录 flacfiles(与此 API 兼容 - 那里有许多 github 项目,但想知道是否有官方项目)?
我想使用 Google Speech API 的异步转录服务。我已将我的音频文件上传到 Google 存储桶,并尝试将其与以下代码一起使用(我已从命令中删除了我的密钥和文件名,其他所有内容都已复制)。
curl -H "Content-Type: application/json"
--data '{"audio":{"uri":"https://storage.cloud.google.com/<mybucketname>/<filename>"},
"config":{"encoding":"FLAC","sample_rate_hertz":"16000","language_code":"en_US"}}'
https://speech.googleapis.com/v1/speech:longrunningrecognize?key=<mykey>
Run Code Online (Sandbox Code Playgroud)
我收到 400 INVALID_ARGUMENT 错误,告诉我“请求包含无效参数”。我在 curl 请求中做错了什么?
我正在尝试通过 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 = ['?? ???? ???', '??? ??? ?????', '?? ??? ????? ???? ?????', '???? ??? ??? ????? ??? ??? ???? …Run Code Online (Sandbox Code Playgroud) 我已经在 Python 中设置了一个同步识别脚本,该脚本按预期工作,以返回我发送到 Google Speech API 的各种音频文件的成绩单。但是,我似乎无法获得语音上下文提示(Python 中的语音上下文;Google 文档中的“短语提示/语音上下文”)来做任何有用的事情。我有一个音频文件,其中扬声器清楚地说出“健康”这个词,但它每次都被转录为“房子”,尽管明确告诉它寻找“健康”这个词,如下面的代码所示,它没有找到。有什么建议可以使此功能有效吗?
config = types.RecognitionConfig(
encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
language_code='en-US',
speech_contexts=[speech.types.SpeechContext(
phrases=['health'])]
)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个音频文件(30 秒),想使用谷歌将其转换为文本。
我正在遵循本指南:
https://realpython.com/python-speech-recognition/#working-with-audio-files
我的代码如下:
cut=sr.AudioFile("cutsound.wav") 以 cut 作为源:audio = r.record(source) r.recognize_google(audio)
现在我收到这个无休止的错误信息:
---------------------------------------------------------------------------
BrokenPipeError Traceback (most recent call last)
~/anaconda3/envs/tf/lib/python3.6/urllib/request.py in do_open(self, http_class, req, **http_conn_args)
1317 h.request(req.get_method(), req.selector, req.data, headers,
-> 1318 encode_chunked=req.has_header('Transfer-encoding'))
1319 except OSError as err: # timeout error
~/anaconda3/envs/tf/lib/python3.6/http/client.py in request(self, method, url, body, headers, encode_chunked)
1238 """Send a complete request to the server."""
-> 1239 self._send_request(method, url, body, headers, encode_chunked)
1240
~/anaconda3/envs/tf/lib/python3.6/http/client.py in _send_request(self, method, url, body, headers, encode_chunked)
1284 body = _encode(body, 'body')
-> …Run Code Online (Sandbox Code Playgroud) 我正在为我的项目使用 google-cloud-speech api。我在虚拟环境中使用 pipenv 我安装了 google-cloud-speech api
pipenv 安装 google-cloud-speech
和
pipenv 更新谷歌云语音
我跟着这个文档https://cloud.google.com/speech-to-text/docs/reference/libraries
这是我的代码:
谷歌.py:
# !/usr/bin/env python
# coding: utf-8
import argparse
import io
import sys
import codecs
import datetime
import locale
import os
from google.cloud import speech_v1 as speech
from google.cloud.speech import enums
from google.cloud.speech import types
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = os.path.join("alt_speech_dev_01-fa5fec6806d9.json")
def get_model_by_language_id(language_id):
model = ''
if language_id == 1:
model = 'ja-JP'
elif language_id == 2:
model = 'en-US'
elif language_id == 3:
model = "zh-CN" …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 nodejs 向 FFmpeg发送 2 个ReadableStreams。我曾尝试使用 fluent-ffmpeg 库来做到这一点,但它只支持发送一个流进行处理。在这里查看
我的问题是:我有 2 个传入的单声道音频流,我想将它们发送到 ffmpeg 以创建立体声流,然后将其发送到 google 的语音到文本服务,以生成转录。
我已成功接收到 nodejs 服务器的两个单声道流。如何利用 FFmpeg 实时合并它们仍然不清楚,我可以生成一个 FFmpeg 子进程,但我不确定如何将 2 ReadableStreams作为输入并作为另一个流获取输出?FFmpeg 支持多个输入流。
如果使用此代码将两个单声道流放在两个单独的文件中,我可以合并它们。
const { spawn } = childProcess;
const ffmpeg = spawn('ffmpeg', [
'-i', this.phoneAudioFile,
'-i', this.micAudioFile,
'-filter_complex', '[0:a][1:a]amerge=inputs=2[a]',
'-map', '[a]',
this.outputLosslessFile,
]);
Run Code Online (Sandbox Code Playgroud)
如何使用 2 个流而不是 2 个文件实现相同的效果?
编辑
我正在尝试使用 google-speech2text api 但是,即使我已将代码设置为通过所有可用的编码器,我仍然不断收到“指定 MP3 编码以匹配音频文件”。
这是我正在尝试使用的文件
我必须补充一点,如果我将文件上传到他们的 UI 上,我可以获得输出。所以我假设源文件中没有任何问题。
from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types
client = speech.SpeechClient.from_service_account_json('gcp_credentials.json')
speech_file = 'chunk7.mp3'
import io
from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types
with io.open(speech_file, 'rb') as audio_file:
content = audio_file.read()
audio = types.RecognitionAudio(content=content)
import wave
ENCODING = [enums.RecognitionConfig.AudioEncoding.LINEAR16,
enums.RecognitionConfig.AudioEncoding.FLAC,
enums.RecognitionConfig.AudioEncoding.MULAW,
enums.RecognitionConfig.AudioEncoding.AMR,
enums.RecognitionConfig.AudioEncoding.AMR_WB,
enums.RecognitionConfig.AudioEncoding.OGG_OPUS,
enums.RecognitionConfig.AudioEncoding.SPEEX_WITH_HEADER_BYTE]
SAMPLE_RATE_HERTZ = [8000, 12000, 16000, 24000, 48000]
for enco in ENCODING:
for rate …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Node.js 中设置 StreamingRecognize() Google Cloud Speech to Text V2 以用于流式传输音频数据,并且在初始识别器请求设置流时它总是向我抛出相同的错误:
Error: 3 INVALID_ARGUMENT: Invalid resource field value in the request.
at callErrorFromStatus (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/call.ts:81:17)
at Object.onReceiveStatus (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/client.ts:701:51)
at Object.onReceiveStatus (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/client-interceptors.ts:416:48)
at /Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/resolving-call.ts:111:24
at processTicksAndRejections (node:internal/process/task_queues:77:11)
for call at
at ServiceClientImpl.makeBidiStreamRequest (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/client.ts:685:42)
at ServiceClientImpl.<anonymous> (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/make-client.ts:189:15)
at /Users/<filtered>/backend/node_modules/@google-cloud/speech/build/src/v2/speech_client.js:318:29
at /Users/<filtered>/backend/node_modules/google-gax/src/streamingCalls/streamingApiCaller.ts:71:19
at /Users/<filtered>/backend/node_modules/google-gax/src/normalCalls/timeout.ts:54:13
at StreamProxy.setStream (/Users/<filtered>/backend/node_modules/google-gax/src/streamingCalls/streaming.ts:204:20)
at StreamingApiCaller.call (/Users/<filtered>/backend/node_modules/google-gax/src/streamingCalls/streamingApiCaller.ts:88:12)
at /Users/<filtered>/backend/node_modules/google-gax/src/createApiCall.ts:118:26
at processTicksAndRejections (node:internal/process/task_queues:95:5)
{
code: 3,
details: 'Invalid resource field value in the request.',
metadata: Metadata {
internalRepr: Map(2) {
'google.rpc.errorinfo-bin' => …Run Code Online (Sandbox Code Playgroud) streaming node.js google-speech-api google-cloud-speech google-speech-to-text-api