在 React-Native 上实现 Google Cloud Speech-to-Text

Posted

技术标签:

【中文标题】在 React-Native 上实现 Google Cloud Speech-to-Text【英文标题】:Implementing Google Cloud Speech-to-Text on React-Native 【发布时间】:2019-06-28 12:43:02 【问题描述】:

我正在尝试在 react-native 应用程序上实现 google 的语音到文本,但我找不到有关它的示例或文档,我对 react-native 还很陌生,所以我有点迷路了,有谷歌官方文档上的sample using node.js,我正在尝试将其“复制”到 react-native 但我没有成功。

这是 Node.js 示例:

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

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

  // The name of the audio file to transcribe
  const fileName = './resources/audio.raw';

  // Reads a local audio file and converts it to base64
  const file = fs.readFileSync(fileName);
  const audioBytes = file.toString('base64');

  // The audio file's encoding, sample rate in hertz, and BCP-47 language code
  const audio = 
    content: audioBytes,
  ;
  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`);

main().catch(console.error);

首先,'fs' 包不适用于 react-native,所以我不得不使用具有不同功能的 'react-native-fs'

第二,我真的应该使用'require'来调用语音包吗?我猜 react-native 会改用“import”,对吧?

关于如何在 react-native 上实现它的任何提示?谢谢!

【问题讨论】:

【参考方案1】:

您不能在 react native 上运行 @google-cloud/speech,因为 RN 在 JV 环境中运行,而库 (@google-cloud/speech) 在 nodejs 环境中运行。你可以创建一个 api 并部署它,或者使用这个库react-native-google-speech-api

【讨论】:

该库的最后一次提交是 3 年前。这也需要一个人退出世博会项目。如何为此创建一个 api,以便它可以在 JS 和 Expo 中构建?

以上是关于在 React-Native 上实现 Google Cloud Speech-to-Text的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VuePress 上实现 Google Adsense?

如何在 Google AppEngine 上实现“实时”消息传递?

在 Google App Engine Cloud 基础架构上实现 Stack Exchange API 兼容请求限制

如何在 Groovy/Grails 上实现社交网络登录? [关闭]

如何在 Dialogflow 上实现 Permission API

Firebase 和 react-native 集成