我想要实现的是与Web Speech API相同的实时脚本处理流程,但使用的是Google Cloud Speech API.
主要目标是使用gRPC协议通过带有Speech API的Electron应用程序转录实时录制.
这是我实现的简化版本:
const { desktopCapturer } = window.require('electron');
const speech = require('@google-cloud/speech');
const client = speech.v1({
projectId: 'my_project_id',
credentials: {
client_email: 'my_client_email',
private_key: 'my_private_key',
},
});
desktopCapturer.getSources(
{ types: ['window', 'screen'] },
(error, sources) => {
navigator.mediaDevices
.getUserMedia({
audio: true,
})
.then((stream) => {
let fileReader = new FileReader();
let arrayBuffer;
fileReader.onloadend = () => {
arrayBuffer = fileReader.result;
let speechStreaming = client.streamingRecognize({
config: {
encoding: speech.v1.types.RecognitionConfig.AudioEncoding.LINEAR16,
languageCode: 'en-US',
sampleRateHertz: 44100,
},
singleUtterance: …Run Code Online (Sandbox Code Playgroud)