2017-03-13 3 views
1

오디오 파일을 텍스트로 변환하기 위해 Speech API 클라이언트 API를 사용하려고합니다.Google 음성 API 시간 종료 시간

지금까지 내가하지만 지금은 더 이상 파일 (10 분) 나는이 오류 수와 짧은 오디오 클립을 변환에 성공했다 : 나는 docs에서 읽은

Retry total timeout exceeded before anyresponse was received 

를 비동기가 호출과 그 최대 통화 시간은 분당 60이며 파일을 Google Cloud Storage에 업로드 한 것은 1 분 이상의 파일에 필요하기 때문입니다.

그래서 나는 왜 나는 그 오류가 발생하는지 알 수 없다.

답변

0

기본적으로 시스템 시간 초과는 10 분입니다. This is a known issue for other Google Cloud services하지만 거기에 제안 된 수정 프로그램은 나에게 효과가 없었습니다. 코드를 실행하고 연결을 시작할 때 설정해야 할 다른 사항이라고 생각합니다.

어쨌든 해결 방법이 있습니다! 장기 실행 작업 이름을 얻은 다음 프로그램을 중지합니다. 작업은 Google 서버에서 계속되며 나중에 결과를 가져옵니다!

As written in the docs

Asynchronous Speech Recognition starts a long running audio processing operation.

내가 여기 node.js 샘플을 참조한다는 유사한 개념은 다른 사람을 위해 적용됩니다. 그래서, 당신은 당신의 응답을 (약속 버전을 사용하지 않음), 콜백 like explained here 그것을 통과하고

operation 
    .on('error', function(err) {}) 
    .on('complete', function(transcript) { 
     // transcript = "how old is the Brooklyn Bridge" 
    }); 

그냥 작동 이름의

console.log(operation) 

걸릴 노트 같은 일을 대신받을 때 나중에 사용할 수 the operation method

You can test these on the google oauth playground

0

에 나는 수 시간 제한을 설정하는 적절한 방법을 찾지 못했습니다 10 분 이상이므로 을 직접 수정했습니다. backoffSettings이라는 값이있는 변수가 있습니다.이 값은 createBackoffSettings의 전화 번호 node_modules/google-gax/lib/gax.js입니다. 내가이 같았다 그 변수 수정하기 전에 는 :

backoffSettings = 
     createBackoffSettings(100, 1.3, 60000, null, null, null, 3600000); 

createBackoffSettings 함수 호출의 마지막 매개 변수는 totalTimeoutMillis이고 당신이 볼 등의 기본입니다 :

backoffSettings = 
     createBackoffSettings(100, 1.3, 60000, null, null, null, 600000); 

을 나는 1 시간의 제한 시간을 처리하기 위해 그것을 변경 10 분.

누군가 더 좋은 방법을 알고 있다면 공유하시기 바랍니다. 도움이 되길 바랍니다.

1

다른이 문제가있는 사용자는 Google에서 시간 초과 값을 제거하여이 버그를 수정했습니다. https://github.com/googleapis/gax-nodejs/pull/140/files 최신 google-gax npm 패키지로 업데이트 한 후 내 스피치 api 요청이 정상적으로 작동합니다.