grpc : 调用是半封闭的错误
我正在使用Google Cloud Platform演讲API. 我正在使用示例源开发. 样品/树/主/语音/语音 几乎与样品源相同. 除了我的应用程序中的许多启动/停止. 我在三星设备中遇到了此错误. 我没有在华为设备中遇到此错误. com.google.common.base.base.preconditions.checkstate(preconditions.java:444) io.grpc.internal.clientcallimpl.sendmessage(clientcallimpl.java:389) io.grpc.forwardingclientcall.sendmessage(expedringclientcall.java:67) io.grpc.stub.clientcalls $ callToStreamObserverAdapter.onnext(clientcalls.java:302) com.example.myapp.speec
2 2024-02-06
编程技术问答社区
使用API密钥在安卓系统上通过GRPC认证谷歌云语音
我设法通过GRPC使用服务模式下的服务帐户来使Google Cloud语音为我的Android应用程序工作.但是,根据我阅读的内容,出于安全原因,我不应该在其中使用这些凭据(当前作为JSON文件存储为JSON文件).正确的方法是创建一个API键,如下所述: https://cloud.google .com/speak/docs/common/auth 这使我可以限制对我特定的Android应用程序的访问.但是,我无法找出如何使用GRPC的API键.我目前正在从JSON文件中创建一个GoogleCredentials实例,这很好.如何从API键获得凭据对象? 解决方案 您可以使用API​​键 尝试一下 Metadata.Key API_KEY = Metadata.Key.of("x-goog-api-key", Metadata.ASCII_STRING_MARSHALLER); Metadata apiKeyMetadata = new Metad
0 2024-02-05
编程技术问答社区
如何在安卓系统中播放.opus音频文件?
我正在开发一个用于使用Google Cloud Speech API识别语音的应用程序,并同时录制音频. git link 我尝试播放录制的.opus音频文件获取IOException W/System.err: java.io.IOException: setDataSource failed. 有什么想法?谢谢! 解决方案 Android stack Exchange上的用户提到可以播放.ogg Extension 在Android的较新版本中. 将.opus文件重命名为.ogg. 其他解决方案 我不知道该特定错误,但是请确保您正在对新的Android进行测试,并且您可能需要手动污染以将原始数据包馈送到解码器. 如果您需要在任何地方提供操作支持,则可以在应用程序中包含C库,并直接通过JNI致电. 其他解决方案 Android 10及更新的播放" .opus"文件.
4 2024-02-04
编程技术问答社区
安卓语音转文字API(识别器意图)和谷歌云语音API之间的区别?
因此,我正在考虑为文本应用程序建立演讲以娱乐.我进行了一些研究,并使用免费的识别器发现了对文本API的内置演讲,但也发现Google现在提供了云语音API. . 我的问题是,它们有什么区别,如果我使用内置识别器,它是免费的吗? 解决方案 有关Google Cloud Speech API,请参阅以下链接: https://cloud.google.com/speech/.这是亮点: 它支持80种不同的语言. 它可以识别请求中上传的音频. 它将返回文本实时结果. 它在嘈杂的环境中是准确的. 它可以与任何设备和平台上的应用一起使用. 它不是免费的.请参阅以下定价链接: https://cloud.google.com/speech/pricing/pricing 对于Android语音到文本API(识别器意图),请参阅以下链接: http:///wwwww.androidhive.info/2014/07/Android语音到教程/.这是亮
8 2024-01-30
编程技术问答社区
当检测到静音(JS)时,如何提取前面的音频(从麦克风)作为缓冲区?
我正在使用nodejs后端使用Google Cloud API进行语音到文本. 该应用需要能够聆听语音命令,并将其作为缓冲区传输到后端.为此,当检测到沉默时,我需要发送前一个音频的缓冲区. 任何帮助将不胜感激.包括下面的JS代码 if (!navigator.getUserMedia) navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; if (navigator.getUserMedia) { navigator.getUserMedia({audio: true}, success, function (e) { alert('Error capturing audio.'); }); } e
12 2023-11-29
编程技术问答社区
能否将谷歌语音API配置为只返回数字/字母?
与完整单词相反,可以将Google语音API配置为仅返回数字和字母吗? 用例正在翻译加拿大邮政编码. 前任. M 1 B 0 R 3. Google可能返回" EM 1 BE 0是3" 我们尝试了: 使用speechContexts并用字母A -z作为单个短语进行馈送.这提高了我们的准确性.我们的个人数量没有太大的成功(EX 1、2、3). 使用encoding和sampleRateHertz配置选项指定WAV文件的编解码器和采样率.我们认为Google已经在自动认识样本率和编码方面做得很好,因此我们没有看到这样做的进步. 我们的音频文件为8000Hz,并用" M-ulaw"编码.我们没有更改样本率或编码的灵活性. 有没有一种方法可以从Google获得此用例的更准确响应?欢迎使用更好的speechContexts短语的想法. 谢谢 解决方案 我们正在经历相同的结果,我们希望有一个基于语法的"上下文"建议或一个仅强制数字返回变量的参数.
谷歌云文字转语音API-许可错误
我正在尝试按照以下说明来设置Google云文本到 - speech API- https://cloud.google.com/text-to-spech/docs/quickstart 我已经成功遵循步骤1-6来设置Google SDK并使用服务帐户凭据进行身份验证. 但是,当我尝试运行示例http请求以进行综合语音请求时,我会收到以下错误: 云文本到语音API在项目可用的library或禁用之前尚未使用.通过访问 遵循错误消息中的链接时,它会导致以下页面: API" TextTospeech.googleapis.com"不存在或您没有访问它的权限. 我很感谢 解决方案 我更容易使用API​​密钥在大多数质码中集成,而不是Google推荐在其文档上的服务帐户密钥. 这些是您到达API键所需的所有步骤 在. 确保Enable the Text-to-Speech API. 创建一个 您可能只需要最后一步(如果您像您说的那样正确地遵循所有步骤
6 2023-10-19
编程技术问答社区
从谷歌语音api获取 "成绩单 "值
我正在尝试从以下结果获取"成绩单"值: { transcript: "1 2 3 4" confidence: 0.902119 words { start_time { nanos: 200000000 } end_time { nanos: 700000000 } word: "1" } words { start_time { nanos: 700000000 } end_time { nanos: 900000000 } word: "2" } words { start_time { nanos: 900000000 } end_time { seconds: 1 } word: "3" } words { start_time { seconds: 1 } end_time { seconds: 1 nanos: 300
4 2023-10-09
编程技术问答社区
Google演讲中的25S延迟到文本
这是我使用Google语音到文本引擎的问题.我目前正在32kb块中实时流式传输16位/16 kHz音频.但是,在发送音频和接收笔录之间平均有25秒的延迟,打败了实时转录的目的. 为什么有如此高的潜伏期? 解决方案 Google对文本的演讲 documentation 建议使用100毫秒的帧大小来最大程度地减少延迟. 32kb *(8位/1个字节) *(1个样本/16位) *(1秒/16000个样本)= 1秒 所以尝试发送3.2kb块.这将平均延迟从25s下降到〜4s.
6 2023-09-30
编程技术问答社区
如何对 "longRunningRecognize "操作进行序列化和反序列化,以便日后获得其结果?
我正在使用Firebase Cloud函数用 longRunningRecognize> 的示例代码: // Detects speech in the audio file. This creates a recognition job that you // can wait for now, or get its result later. const [operation] = await client.longRunningRecognize(request); // Get a Promise representation of the final result of the job const [response] = await operation.promise(); 此代码适用于可以比 9分钟的firebase firbase 我认为,这里明显的修复程序是直到发生这种情况, 我如何序列化SpeechClient operation,以便我可以从a 计划功能
是否可以在一个账户中同时执行两个语音转文字流?
所以,问题是在标题上,我可以为一个用户创建语音,并且可以很好地奏效,但是当我尝试连接第二用户时,它对所有用户都有效,有时对一个用户有效,所以问题是,我可以通过一个Google_application_credentials同时为两个或多个用户创建SPPECH到TEXT流,还是每个用户需要启动自己的项目? 解决方案 您应该能够创建多个流>线程通过使用相同的StreamingRecognize()客户端,可以并行发送请求.您可以看看 this github帖子在讨论此主题的地方. 我建议您尝试此替代方案并验证是否可以通过创建2个不同的对象或客户端(例如: )执行这些流呼叫 client = speech.SpeechClient() responses = client.streaming_recognize() responses2 = client.streaming_recognize() 另一方面,如果您想对批处理进行音频识别,建议使用同步或 更新.在Pyth
提高谷歌云语音API的准确性
我目前正在Mac OS计算机上的网页录制音频,并通过云语音API运行以产生成绩单.但是,结果并不是那么准确,结果中有大量丢失的单词. 是否有任何步骤可以帮助我产生更准确的结果? 这是我正在采取的步骤将音频转换为文本: 使用Soundflower将音频从我的声卡输出到麦克风. 网站播放音频 使用QuickTime Player记录被保存为.m4a文件的音频. 使用命令行工具ffmpeg将.m4a文件转换为 .flac,还将2个音频通道(立体声)结合到1个音频频道(Mono). 将.flac文件上传到Google Cloud Storage.该文件的采样率为44100Hz,每个样本有24位. 使用node.js客户端库使用longrunnunnerize api, 指向Google Cloud Storage中的文件. 解决方案 来自语音到文本API side,我建议您验证您的遵循最佳实践建议,例如避免过多的背景噪音和同时交谈的多个人,因为这些方面会影响服
2 2023-09-08
编程技术问答社区
如何优雅地结束Google Speech-to-Text streamingRecognize并取回待处理的文本结果?
我希望能够结束Google语音到text流(使用streamingRecognize 创建),然后恢复待处理的sr(语音识别)结果. 在简而言之,相关node.js代码: // create SR stream const stream = speechClient.streamingRecognize(request); // observe data event const dataPromise = new Promise(resolve => stream.on('data', resolve)); // observe error event const errorPromise = new Promise((resolve, reject) => stream.on('error', reject)); // observe finish event const finishPromise = new Promise(resolve => stream.on
8 2023-09-08
编程技术问答社区
谷歌语音识别API结果为空
我对Google Cloud Speeck API执行异步请求,我不知道如何获得操作的结果: 请求帖子: https://speech.googleapis.com/V1BETA1/语音:异步认识 身体: { "config":{ "languageCode" : "pt-BR", "encoding" : "LINEAR16", "sampleRate" : 16000 }, "audio":{ "uri":"gs://bucket/audio.flac" } } 返回: { "name": "469432517" } 所以,我发表一篇文章:/469432517 返回: { "name": "469432517", "me
18 2023-09-08
编程技术问答社区
如何通过socket.io将实时音频从浏览器串流到谷歌云语音?
我有一个基于React的应用程序的情况,其中我也想为此允许语音输入.我可以只制作与Chrome和Firefox兼容的,所以我想使用 getusermedia .我知道我将使用Google Cloud的语音来文本API.但是,我有一些警告: 我希望它流式传输我的音频数据 live ,而不仅仅是我完成录制时.这意味着我发现的许多解决方案都无法正常工作,因为它不足以保存文件,然后将其发送到Google Cloud Speech. . 我不相信我的Google Cloud API信息的前端.相反,我已经在后端运行了一项服务,该服务具有我的凭据,我想将音频(实时)流到后端,然后从后端流到Google Cloud,然后将其发射到我的成绩单中他们回到前端. 我已经使用socket.io连接到该后端服务,我想完全通过插座管理它,而不必使用binary.js或类似的东西. 似乎没有关于如何做到这一点的好教程.我该怎么办? 解决方案 首先,信用到应到期的信用:在这里我的大量解决方案是
2 2023-09-05
编程技术问答社区
我怎样才能从Google Apps脚本中授权Google Speech-to-text?
我正在尝试从应用程序脚本执行Google语音到文本.不幸的是,我找不到有关应用程序脚本或纯HTTP的任何示例,因此我可以使用简单的urlfetchapp进行运行. 我创建了一个服务帐户并设置了一个具有启用的语音到文本API的项目,并且能够 使用命令行示例成功运行识别 curl -s -h" content -type:application/json" \ -h"授权:持票人" $(gcloud auth应用程序默认默认访问访问)\ https://speech.googleapis.com/v1/speech:recognize -d @sync-request.json 我可以轻松地转换为urlfetchapp呼叫,但是我没有想法生成由 创建的访问令牌 gcloud auth应用程序默认默认打印 - 访问 有没有办法使用服务帐户凭据从应用程序脚本获取它? 或是否有其他方法可以从应用程序脚本验证和访问语音到文本? 解决方案 The equi
94 2023-08-29
编程技术问答社区
保存 Google 云语音 API 操作(任务)对象,以便日后检索结果
我正在努力与Ruby Client(v0.22.2)一起使用Google Cloud Speech API. 我可以执行长期运行的作业,如果我使用 ,可以获得结果 job.wait_until_done! 但是,这可以锁定服务器的长时间. 根据API文档,我真正需要的只是操作名称(ID). 是否有任何方法可以从操作名称中创建作业对象并以这种方式检索它? 我似乎无法创建功能上的新作业对象,例如使用@grpc_op 的ID 我想做的是: speech = Google::Cloud::Speech.new(auth_credentials) job = speech.recognize_job file, options saved_job = job.to_json #Or some element of that object such that I can retrieve it. Later, I want to do something l
4 2023-08-22
编程技术问答社区
获取 long_running_recognize 操作的进度(Google 云语音 API)
我的代码很简单.它在单个通道FLAC音频文件上运行long_running_recognize,并使用Google Cloud Speech API存储结果.我正在尝试找到一种方法来获得long_running_recognize操作的当前进度.我找到了有关该主题的一些文档,但是我很难理解它. client = speech.SpeechClient() operation = client.long_running_recognize( audio = speech.types.RecognitionAudio( uri = str('gs://speech-clips/'+self.audio_fqid), ), config = speech.types.RecognitionConfig( encoding = enums.RecognitionConfig.AudioEncoding.FLAC, sample_rate_hertz =
4 2023-08-10
编程技术问答社区
加载库失败。[netty_tcnative_linux_arm_32, netty_tcnative_linux_arm_32_fedora, netty_tcnative_arm_32, netty_tcnative] 。
我试图使用Raspberry Pi Modal 3上的JAR运行Java应用程序3.我无法解决此问题.有人可以建议我如何在Raspberry Pi上做这项工作? 在POM中,我包括Google-Cloud语音依赖性,0.56.0-beta;和Spring-boot-Starter-Web依赖性. 错误: java.lang.IllegalArgumentException: Failed to load any of the given libraries: [netty_tcnative_linux_arm_32, netty_tcnative_linux_arm_32_fedora, netty_tcnative_arm_32, netty_tcnative] at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.loadFirstAvailable(Native
74 2023-07-25
编程技术问答社区
导入错误: 没有名为 google.cloud 的模块
我无法导入Google.cloud.speech from google.cloud import speech 我已经使用: 安装了它 pip install --upgrade google-cloud-speech -t dir-name 从dir-name导入时,它给我以下错误 ImportError: No module named google.cloud Google软件包带有所有子软件包,但在每个子软件包中也没有 __ INIT __ INT __ .py. 如何导入此软件包而不添加 __ INT __ .py在软件包文件夹中? ps:我也尝试过 __未来__ 导入absolute_import,但它不起作用. 解决方案 "云语音API客户端库"上的指令我使用命令在我的debian机器上安装了python的库: pip install --upgrade google-cloud-speech 其他解决方案 使
2 2023-07-22
编程技术问答社区