Ett*_*ini 3 speech-to-text node.js google-cloud-platform
我正在尝试使用谷歌云语音来文本 api。
我正在使用示例 google 代码,当我创建客户端对象时,出现此错误。
{
"errno":-2,
"syscall":"open",
"code":"ENOENT",
"path":"protos.json",
"stack":"Error: ENOENT: no such file or directory, open 'protos.json'\n at Object.openSync (fs.js:440:3)\n at Object.readFileSync (fs.js:342:35)\n at fetch (transcript-server-js/node_modules/protobufjs/src/root.js:160:34)\n at Root.load (/transcript-server-js/node_modules/protobufjs/src/root.js:194:13)\n at Root.loadSync (/transcript-server-js/node_modules/protobufjs/src/root.js:235:17)\n at Object.loadSync (/transcript-server-js/node_modules/@grpc/proto-loader/build/src/index.js:221:27)\n at GrpcClient.loadFromProto /transcript-server-js/node_modules/google-gax/src/grpc.ts:165:40)\n at GrpcClient.loadProto (/transcript-server-js/node_modules/google-gax/src/grpc.ts:199:17)\n at new SpeechClient /transcript-server-js/lib/webpack:/src/v1/speech_client.ts:135:28)\n at createText$ (/transcript-server-js/lib/webpack:/src/transcriptGenerator.js:50:18)"
}
Run Code Online (Sandbox Code Playgroud)
这是代码
const { Storage } = require('@google-cloud/storage');
const storage = new Storage();
const results = await storage.getBuckets();
const speech = require('@google-cloud/speech');
const client = new speech.SpeechClient();
Run Code Online (Sandbox Code Playgroud)
谷歌云存储 API 有效。
有人能帮我吗?
谢谢
我遇到了这个@google-cloud/firestore。双方@google-cloud/firestore并@google-cloud/speech使用相同的机制来负载protos.json,所以我的解决办法应该是与此有关。
这发生在我身上,因为 webpack 正在将@google-cloud/firestore包构建到我的包中。该@google-cloud/firestore包用于__dirname查找protos.json. 由于@google-cloud/firestore代码在我的包中,__dirname变量被设置为我的包的目录而不是node_modules/@google-cloud/firestore/包含protos.json.
在你的 webpack 配置中设置它来告诉 webpack 设置的值__dirname:
node: {
__dirname: true,
}
Run Code Online (Sandbox Code Playgroud)
https://webpack.js.org/configuration/node/
更新您的 webpack 配置以@google-cloud/speech从您的包中排除。
一种方法是使用webpack-node-externals包从node_modules目录中排除所有依赖项:
var nodeExternals = require('webpack-node-externals')
...
module.exports = {
...
externals: [nodeExternals()],
target: 'node',
...
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1055 次 |
| 最近记录: |