我在谷歌云语音api上使用python我在ubuntu和Windows上的" 如何在python中使用谷歌语音识别api "中执行了所有步骤,当我尝试从这里运行简单脚本时 - " https: //github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/api/speech_rest.py "
我收到下一个错误:
<HttpError 403 when requesting https://speech.googleapis.com/$discovery/rest?version=v1beta1 returned "Google Cloud Speech API has not been used in project google.com:cloudsdktool before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/speech.googleapis.com/overview?project=google.com:cloudsdktool then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.">
奇怪的是,我没有名为"cloudsdktool"的项目
我运行"gcloud init",并将我在创建服务帐户密钥时获得的json文件与"gcloud auth activate-service-account --key-file = jsonfile"命令相关联,我在linux中尝试创建google凭据环境变量我仍然得到同样的按摩
我开始使用Google Speech API转录音频。
正在转录的音频包含许多个接一个的号码。
例如273298
但是转录又回来了270-3298
我的猜测是它将其解释为某种电话号码。
我想要的是未解析的输出,例如“我自己可以处理和解析的”“二十七三二九十八”。
对这种事情有设置或支持吗?
谢谢
speech-recognition speech-to-text google-cloud-platform google-speech-api
我正在尝试使用Google Cloud Speech API转录一个简短的采访音频文件,但它只能转录录音的前半分钟。我进行了多次尝试,录音时间超过一分钟,结果是相同的。我的问题是,如何获得给定文件的完整音频转录?
您可以在这里找到我的一个用例:
上载音频文件:
POST https://speech.googleapis.com/v1beta1/speech:asyncrecognize?key={YOUR_API_KEY}
{
"config": {
"encoding": "LINEAR16",
"sampleRate": 16000,
},
"audio": {
"uri": "gs://protean-blend-146812.appspot.com/record__2017_02_02_12_02_17_greg_16000.wav",
}
}
在响应中得到了操作编号:
{
"name": "8977932499808116064"
}
使用操作号进行请求:
GET https://speech.googleapis.com/v1beta1/operations/8977932499808116064?key={YOUR_API_KEY}
得到结果:
{
"name": "8977932499808116064",
"metadata": {
"@type": "type.googleapis.com/google.cloud.speech.v1beta1.AsyncRecognizeMetadata",
"progressPercent": 100,
"startTime": "2017-02-02T11:21:41.346784Z",
"lastUpdateTime": "2017-02-02T11:23:03.150491Z"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.speech.v1beta1.AsyncRecognizeResponse",
"results": [
{
"alternatives": [
{
"transcript": "McGregor you have any stories about being lost that you have all the good advice well let me know in the Golden …
speech-recognition google-api speech-to-text google-speech-api google-cloud-speech
我正在尝试将websocket连接的音频流发送到Google Speech API.websocket以20ms的增量发送二进制消息.它以递增的方式发送它让我相信我会以某种方式暂时读取和写入数据到本地文件,以避免杀死与Google的连接.但是,这并不理想.
有没有办法直接管道websocket流recognizeStream?
来自文档的Google streamingRecognize示例:
const request = {
config: {
encoding: encoding,
sampleRate: sampleRate
}
};
const recognizeStream = speech.createRecognizeStream(request)
.on('error', console.error)
.on('data', (data) => process.stdout.write(data.results));
record.start({
sampleRate: sampleRate,
threshold: 0
}).pipe(recognizeStream);
Run Code Online (Sandbox Code Playgroud)
Websocket连接:
var HttpDispatcher = require('httpdispatcher');
var dispatcher = new HttpDispatcher();
var WebSocketServer = require('websocket').server;
var server = http.createServer(handleRequest);
var wsServer = new WebSocketServer({
httpServer: server,
autoAcceptConnections: true,
});
function handleRequest(request, response){
try {
//log the request on console
console.log(request.url);
//Dispatch
dispatcher.dispatch(request, response);
} catch(err) …Run Code Online (Sandbox Code Playgroud) 几个月来,我一直在使用Google Speech API从我的PHP应用程序(使用Google Cloud PHP客户端)将音频转录成文本。但是,我的呼叫现在开始返回403错误,状态为“ PERMISSION_DENIED”,并显示消息“呼叫者没有权限”。
我正在将Speech API与Google Storage一起使用。我正在使用服务帐户进行身份验证,并将音频数据发送到存储。可以,文件已上传。我知道了-但我可能错了吗?-“呼叫者”无权从存储中读取音频数据。
我一直在通过Google控制台使用权限,但没有成功。我看过文档,但很困惑。我正在使用的服务帐户(我想这是“呼叫者”吗?)对项目拥有所有者权限。过去一切正常,我没有改变任何事情。
我之所以没有发布代码,是因为如果我正确理解我的应用代码不是问题,而是我的Google Cloud设置。对于任何想法或概念澄清,我将不胜感激!
谢谢。
是否可以使用Google Cloud Platform Machine Learning的语音API自动检测口语?
https://cloud.google.com/speech/docs/languages表示支持的语言列表。但是,用户需要手动设置此参数才能执行语音转文本。我想自动执行此操作。
java android google-translate google-cloud-platform google-speech-api
我正在尝试为Google Cloud Speech 做教程.我成功完成了前两个步骤.第2步的回复是:
Activated service account credentials for: [my-service-account@cloud-speech-quickstart.iam.gserviceaccount.com]
Run Code Online (Sandbox Code Playgroud)
第三步说:
3. Obtain an authorization token using your service account:
gcloud auth application-default print-access-token
access_token
Run Code Online (Sandbox Code Playgroud)
我认为这意味着,转到您的CLI并输入:
gcloud auth application-default print-access-token
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
ERROR: (gcloud.auth.application-default.print-access-token) There was a problem refreshing your current auth tokens: invalid_grant: Bad Request
Please run:
$ gcloud auth login
to obtain new credentials, or if you have already logged in with a
different account:
$ gcloud config set account ACCOUNT
to select an already authenticated account …Run Code Online (Sandbox Code Playgroud) 对于使用Meteor框架的跨平台应用程序项目,我想记录麦克风输入并提取语音,这要归功于Google Speech API
根据Google文档,我更具体地尝试构建音频流以馈送Google Speech客户端。
在客户端,一个录制按钮触发以下startCapture功能(基于cordova audioinput plugin):
export var startCapture = function () {
try {
if (window.audioinput && !audioinput.isCapturing()) {
setTimeout(stopCapture, 20000);
var captureCfg = {
sampleRate: 16000,
bufferSize: 2048,
}
audioinput.start(captureCfg);
}
}
catch (e) {
}
}
Run Code Online (Sandbox Code Playgroud)
audioinput 事件使我可以获取记录的音频数据块:
window.addEventListener('audioinput', onAudioInputCapture, false);
var audioDataQueue = [];
function onAudioInputCapture(evt) {
try {
if (evt && evt.data) {
// Push the data to the audio queue (array)
audioDataQueue.push(evt.data);
// Here should probably be …Run Code Online (Sandbox Code Playgroud) javascript cordova meteor google-speech-api google-cloud-speech
我有一个视频通话的rtmp流,我想转录它。我在Go中创建了2个服务,但正在获得结果,但是它不是很准确,并且很多数据似乎丢失了。
让我解释。
我有一个transcode服务,我使用ffmpeg将视频转码为Linear16音频,然后将输出字节放置到PubSub队列中以供transcribe服务处理。显然,PubSub消息的大小是有限制的,我想在视频通话结束之前开始转录。因此,我将转码后的数据分成3个片段(长度不固定,看起来差不多),然后放入队列。
数据很简单地被转码:
var stdout Buffer
cmd := exec.Command("ffmpeg", "-i", url, "-f", "s16le", "-acodec", "pcm_s16le", "-ar", "16000", "-ac", "1", "-")
cmd.Stdout = &stdout
if err := cmd.Start(); err != nil {
log.Fatal(err)
}
ticker := time.NewTicker(3 * time.Second)
for {
select {
case <-ticker.C:
bytesConverted := stdout.Len()
log.Infof("Converted %d bytes", bytesConverted)
// Send the data we converted, even if there are no bytes.
topic.Publish(ctx, &pubsub.Message{
Data: stdout.Bytes(),
})
stdout.Reset()
}
}
Run Code Online (Sandbox Code Playgroud)
该transcribe服务每3秒以1的速率从队列中提取消息,从而以与所创建的速率几乎相同的速率处理音频数据。Speech API流有限制,不能超过60秒,因此我停止旧流并每30秒开始一个新流,因此无论视频通话持续多长时间,我们都不会达到限制。 …
尝试在ubuntu 16.04中使用pip3安装pyaudio时遇到以下错误:
Collecting pyaudio
Downloading PyAudio-0.2.11.tar.gz
Installing collected packages: pyaudio
Running setup.py install for pyaudio ... error
Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-mxgvewdb/pyaudio/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-v55chjee-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.5
copying src/pyaudio.py -> build/lib.linux-x86_64-3.5
running build_ext
building '_portaudio' extension
creating build/temp.linux-x86_64-3.5
creating build/temp.linux-x86_64-3.5/src
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.5m -c src/_portaudiomodule.c -o build/temp.linux-x86_64-3.5/src/_portaudiomodule.o …Run Code Online (Sandbox Code Playgroud) python ×2
access-token ×1
android ×1
cordova ×1
ffmpeg ×1
go ×1
google-api ×1
java ×1
javascript ×1
linux ×1
meteor ×1
node.js ×1
websocket ×1