我无法导入google.cloud.speech
from google.cloud import speech
Run Code Online (Sandbox Code Playgroud)
我用它安装了它:
pip install --upgrade google-cloud-speech -t dir-name
Run Code Online (Sandbox Code Playgroud)
从dir-name导入时,它给出了以下错误
ImportError: No module named google.cloud
Run Code Online (Sandbox Code Playgroud)
包含所有子包的google包在那里,但在每个子包中也没有__init__ .py.
如何在不在包文件夹中添加__init__ .py的情况下导入此包?
PS:我也尝试过__future__ import absolute_import,但它无法正常工作.
python-import python-2.7 google-speech-api google-cloud-speech
因此,我正在考虑为文本应用程序构建语音以获得乐趣.我做了一些研究,发现一个内置的Speech to Text API使用的是免费的RecognizerIntent,但也发现google现在提供了一个云语音API的收费.
我的问题是,它们之间有什么区别,如果我使用内置的RecognizerIntent,它是免费的吗?
我想从网络流式传输音频,然后使用python google-cloud-speechAPI 将其转换为文本。我已经将其集成到我的Django频道代码中。
对于前端,我直接复制了此代码,而后端则具有此代码(请参见下文)。现在,问题来了,我没有收到任何异常或错误,但是我没有从Google API得到任何结果...
我试过的
process函数循环中,控件永远不会到达循环内部。我在这里遍历了Java代码,并试图理解它...我已经在本地设置了Java代码并对其进行了调试。我了解的一件事是在Java代码中,该方法onWebSocketBinary正在接收一个整数数组,从前端我们像这样发送
socket.send(Int16Array.from(floatSamples.map(function (n) {return n * MAX_INT;})));
Run Code Online (Sandbox Code Playgroud)在Java中,它们将转换为字节串,然后发送给Google。在django中,我放了调试点,并注意到我正在以二进制字符串形式获取数据...因此,我觉得我不需要执行任何操作...但是,我尝试了几种方法将其转换为整数数组,但是没有用,因为google期望以字节为单位...(您可以在下面看到带注释的代码)
谁能帮我???
Django代码:
import json
from channels.generic.websocket import WebsocketConsumer
# Imports the Google Cloud client library
from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types
# Instantiates a client
client = speech.SpeechClient()
language_code = "en-US"
streaming_config = None
class SpeechToTextConsumer(WebsocketConsumer):
def connect(self):
self.accept()
def disconnect(self, close_code):
pass …Run Code Online (Sandbox Code Playgroud) django speech-to-text google-speech-api django-channels google-cloud-speech
我正在使用带有NodeJS后端的Google Cloud API for Speech-to-text.应用程序需要能够侦听语音命令,并将它们作为缓冲区传输到后端.为此,我需要在检测到静音时发送前一个音频的缓冲区.
任何帮助,将不胜感激.包括下面的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.');
});
} else alert('getUserMedia not supported in this browser.');
var recording = false;
window.startRecording = function () {
recording = true;
};
window.stopRecording = function () {
recording = false;
// window.Stream.end();
};
function success(e) {
audioContext = window.AudioContext || window.webkitAudioContext;
context = new audioContext();
// the sample rate is in …Run Code Online (Sandbox Code Playgroud) javascript node.js audiocontext web-audio-api google-cloud-speech
我正在对Google Cloud Speech API执行异步请求,我不知道如何获取操作结果:
请求POST: https ://speech.googleapis.com/v1beta1/speech: asyncrecognize
身体:
{
"config":{
"languageCode" : "pt-BR",
"encoding" : "LINEAR16",
"sampleRate" : 16000
},
"audio":{
"uri":"gs://bucket/audio.flac"
}
}
Run Code Online (Sandbox Code Playgroud)
哪个回报:
{ "name": "469432517" }
所以,我做了一个POST:https://speech.googleapis.com/v1beta1/operations/469432517
哪个回报:
{
"name": "469432517",
"metadata": {
"@type": "type.googleapis.com/google.cloud.speech.v1beta1.AsyncRecognizeMetadata",
"progressPercent": 100,
"startTime": "2016-08-11T21:18:29.985053Z",
"lastUpdateTime": "2016-08-11T21:18:31.888412Z"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.speech.v1beta1.AsyncRecognizeResponse"
}
}
Run Code Online (Sandbox Code Playgroud)
我需要得到操作的结果:转录的文本.
我怎样才能做到这一点?
我想通过 Google Cloud text-to-speech API使用SSML 标记来请求音频流中这些标记的时间。这些时间戳是必要的,以便为用户提供效果提示、单词/部分突出显示和反馈。
我发现这个问题是相关的,尽管这个问题是指每个单词的时间戳而不是 SSML<mark>标签。
以下 API 请求返回 OK,但显示缺少请求的标记数据。这是使用Cloud Text-to-Speech API v1.
{
"voice": {
"languageCode": "en-US"
},
"input": {
"ssml": "<speak>First, <mark name=\"a\"/> second, <mark name=\"b\"/> third.</speak>"
},
"audioConfig": {
"audioEncoding": "mp3"
}
}
Run Code Online (Sandbox Code Playgroud)
回复:
{
"audioContent":"//NExAAAAANIAAAAABcFAThYGJqMWA..."
}
Run Code Online (Sandbox Code Playgroud)
它只提供没有任何上下文信息的合成音频。
是否有我忽略的 API 请求可以公开有关这些标记的信息,例如IBM Watson和Amazon Polly 的情况?
我InvalidArgument: 400在 google Speech-to-text 中不断收到此错误,问题似乎是我使用的是 2 声道音频(立体声),而 API 正在等待(单声道)中的 wav。
如果我在音频编辑器中转换文件它可能会工作,但我不能使用音频编辑器来转换一批文件。有没有办法在 Python 或 Google Cloud 中更改音频类型。
注意:我已经尝试过“wave 模块”,但我一直收到错误 #7 无法识别的文件类型(我无法从 Python 中读取带有模块 wave 的 wav 文件)
-ERROR- InvalidArgument: 400 必须使用单声道(单声道)音频,但 WAV 标头指示 2 个声道。
我希望能够结束 Google 语音到文本流(使用创建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('finish', resolve));
// send the audio
stream.write(audioChunk);
// for testing purposes only, give the SR stream 2 seconds to absorb the audio
await new Promise(resolve => setTimeout(resolve, …Run Code Online (Sandbox Code Playgroud) javascript speech-recognition node.js async-await google-cloud-speech
我正在尝试在Android项目中使用Google的Speech API.示例项目有效.我在自己的Android应用程序中使用它时遇到了麻烦.
build.gradle(模块:app):
apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'
ext {
supportLibraryVersion = '25.4.0'
grpcVersion = '1.4.0'
}
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "ApplicationID"
minSdkVersion 16
targetSdkVersion 24
// compileOptions {
// sourceCompatibility JavaVersion.VERSION_1_5
// targetCompatibility JavaVersion.VERSION_1_5
// }
}
signingConfigs {
release {
storeFile file(project.properties.storeFile)
storePassword project.properties.storePassword
keyAlias project.properties.keyAlias
keyPassword project.properties.keyPassword
}
}
productFlavors {
dev {
// Minimum version with platform multi-dex support
minSdkVersion 21
}
prod {
// Minimum version that …Run Code Online (Sandbox Code Playgroud) java android google-cloud-platform google-speech-api google-cloud-speech
当我使用Google语音来发送api或google云语音解决方案时,保持了什么级别的数据隐私.我想知道这一点,因为我正在开发一个将音频文件转换为文本的应用程序,这些文件可能包含用户敏感数据.
android ×2
javascript ×2
node.js ×2
async-await ×1
audiocontext ×1
django ×1
google-api ×1
java ×1
markers ×1
python ×1
python-2.7 ×1
ssml ×1