标签: google-speech-api

使用没有 json 文件的 Google 应用程序默认凭据

我使用 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发送给用户。

对此的任何帮助将不胜感激。

谢谢。

google-speech-api google-cloud-speech

5
推荐指数
1
解决办法
1326
查看次数

来自浏览器的 Google Speech API

在文档页面https://cloud.google.com/speech/ 中有一个演示示例,它通过浏览器收听语音并在后台使用 API。此演示的源是否可用?

如果没有,语音 API 将使用 flac 文件。是否有任何开源项目可以从浏览器中记录 flacfiles(与此 API 兼容 - 那里有许多 github 项目,但想知道是否有官方项目)?

google-cloud-platform google-speech-api gcp

5
推荐指数
1
解决办法
4957
查看次数

Google 语音 API 的 INVALID_ARGUMENT 错误

我想使用 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 请求中做错了什么?

json curl google-speech-api

5
推荐指数
1
解决办法
1299
查看次数

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

我正在尝试通过 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 json dictionary google-speech-api

5
推荐指数
2
解决办法
2155
查看次数

google-speech-api 并使语音上下文有效

我已经在 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)

谢谢!

speech-recognition google-speech-api google-cloud-python

5
推荐指数
0
解决办法
1717
查看次数

识别_谷歌语音识别断管python

我有一个音频文件(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)

python youtube speech-recognition google-speech-api

5
推荐指数
1
解决办法
6663
查看次数

谷歌云语音导入错误:无法导入名称“枚举”

我正在为我的项目使用 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)

python import google-speech-api google-cloud-speech pipenv

5
推荐指数
2
解决办法
6833
查看次数

从 nodejs 向 FFmpeg 发送 2 个流

我正在尝试从 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 个文件实现相同的效果?

编辑

  • 传入的流都具有 PCM 音频数据。
  • 整个过程在 linux Ubuntu 服务器上运行。
  • 最终输出必须是 wav 文件。

javascript ffmpeg node.js google-speech-api web-audio-api

5
推荐指数
1
解决办法
627
查看次数

400 指定 MP3 编码以匹配音频文件

我正在尝试使用 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)

google-speech-api google-cloud-speech

5
推荐指数
2
解决办法
4046
查看次数

如何在 Node.js 中设置 StreamingRecognize Google Cloud Speech To Text V2?

我正在尝试在 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

5
推荐指数
1
解决办法
1534
查看次数