当前位置: 首页 > 知识库问答 >
问题:

node.js中的Google语音转文本抛出错误“{处的文件不存在,或者它不是文件。enoent:没有这样的文件或目录,lstat”

谷玉韵
2023-03-14

我正在尝试在我的web应用程序中实现谷歌的语音到文本的转录,但遇到了很多麻烦。

我决定从底层开始,看看是否至少可以为Node.js实现他们的quickstart示例。在下面的两个示例中(一个旨在转录本地音频文件,另一个旨在转录uri上的音频),最终在控制台中出现了完全相同的错误:

(节点:4836)UnhandledPromiseRejectionWarning:错误:{处的文件不存在,或者它不是文件。提示:没有这样的文件或目录,lstat'[项目文件夹的路径]/{‘

URI示例(基于此)

//Use dotenv to Pull in my Credentials
require('dotenv').config();


// Imports the Google Cloud client library
const speech = require('@google-cloud/speech');

// Creates a client
const client = new speech.SpeechClient();

async function quickstart() {
  // The path to the remote LINEAR16 file
  const gcsUri = 'gs://cloud-samples-data/speech/brooklyn_bridge.raw';

  // The audio file's encoding, sample rate in hertz, and BCP-47 language code
  const audio = {
    uri: gcsUri,
  };
  const config = {
    encoding: 'LINEAR16',
    sampleRateHertz: 16000,
    languageCode: 'en-US',
  };
  const request = {
    audio: audio,
    config: config,
  };

  // Detects speech in the audio file
  const [response] = await client.recognize(request);
  const transcription = response.results
    .map(result => result.alternatives[0].transcript)
    .join('\n');
  console.log(`Transcription: ${transcription}`);
}
quickstart();

本地音频文件示例(基于此)

require('dotenv').config();

const speech = require('@google-cloud/speech');
const fs = require('fs');

async function main() {
    const client = new speech.SpeechClient();
    const filename = './resources/Sample.mp3';

    const file = fs.readFileSync(filename);
    const audioBytes = file.toString('base64');

    const audio = {
        content: audioBytes
    };
    const config = {
        encoding: 'LINEAR16',
        sampleRateHertz: 16000,
        languageCode: 'en-US'
    };
    const request = {
        audio: audio,
        config: config
    };

    const [response] = await client.recognize(request);
    const transcription = response.results.map(result =>
        result.alternatives[0].transcript).join('\n'));
    
    console.log(`Transcription: ${transcription}`);
}
main().catch(console.error);

我错过了什么?提前道谢!

共有1个答案

丁勇
2023-03-14

好的!我想出来了...

在my.env中,我将GOOGLE_APPLICATION_CREDENTIALS环境变量设置为json服务帐户密钥的复制和粘贴内容,而不是将其设置为json文件的路径。

将其设置为密钥的路径修复了我的问题

 类似资料:
  • 问题内容: 我从节点应用程序收到此错误: 我知道文件在那里,因为当我尝试使用确切的复制和粘贴路径打开文件时,它可以工作。我也知道应用程序使用的是正确的目录,因为它会在错误中输出它。 问题答案: 波浪形扩展是一件空壳的事情。编写正确的路径名(可能是yourusername )或使用

  • 一切正常,uri正在获取图像和路径,但在第二个acitivty返回时,图像不显示在imageView中,并在logcat中显示,请帮助 E/Ashish://storage/emulated/0/pictures/fotoaula/img_20180329_183302.jpg E/bitmapFactory:无法解码流:java.io.fileNotFoundException://storag

  • 问题内容: 我有一个Nodejs Web应用程序,当前正在服务器上成功运行。现在,我正在尝试在开发服务器上设置本地副本。 我目前已经像生产服务器中一样安装了Nodejs,NPM和Mongo,但是当我尝试启动节点服务器时出现以下错误 是什么导致此问题? 问题答案: 您的应用希望在处找到一个文件,但该文件不存在(这意味着)。因此,您要么需要创建预期的目录结构,要么配置您的应用程序,使其在的正确目录中查

  • 我在节点Js中工作。当我尝试加载文件时:moviedata.json,如下行: 显示: 错误:ENOENT:没有这样的文件或目录,打开'./moviedata.json'在错误(本机)在Object.fs.open同步(fs.js:640: 18)在Object.fs.readFileSync(fs.js:508: 33)在对象。(/用户/dortiz/文档/NodeJS/pruebas/zw/a

  • 方法总是给出这样的错误: 打开失败:ENOENT(没有这样的文件或目录)

  • 问题内容: 我正在使用Ubuntu 14.04。我有以下代码: 但我不断收到以下错误: python程序和图像都在同一位置。可能是什么问题? 问题答案: 您需要安装: