gpt4 book ai didi

ruby-on-rails - 在ReactJs中录制音频(FLAC或WAV),并使用ruby后端从Google使用Speech2Text

转载 作者:行者123 更新时间:2023-12-03 01:29:33 24 4
gpt4 key购买 nike

我需要通过前端录制音频。我正在使用React Micmic-recorder-to-mp3 ReactJS库。一切都很好,我正在设法下载音频的Blob并听到它。虽然,我需要将其上传到后端,以便可以使用Google SpeechToText API从音频中提取文本。

那是我正在使用的脚本,但它没有返回任何结果,我认为这是cos录制的音频没有正确的编码。

require "google/cloud/speech"
require 'json'


# Instantiates a client
speech = Google::Cloud::Speech.new

# The name of the audio file to transcribe
file_name = "./newmp3.mp3"


# The raw audio
audio_file = File.binread file_name
encoding = :LINEAR16
# The audio file's encoding and sample rate
config = {
encoding: "LINEAR16",
language_code: "pt-BR",
model: "default",
sample_rate_hertz: 16000
}

audio = { content: audio_file }

# Detects speech in the audio file
response = speech.recognize(config, audio)

results = response.results

puts response

最佳答案

您正在将mp3文件发送到API,但是您告诉它该文件已编码为LINEAR16(PCM数据)。这是行不通的。

根据speech API docs,仅通过beta API支持MP3。

解决此问题的一种简单方法是使用简单的外部音频编码器(例如ffmpeg),然后将其转换为FLAC之类,然后再发送:

ffmpeg -i input.mp3 output.flac

然后将 FLAC设置为 encoding设置的音频类型。但是请记住,使用此方法不能上传超过1分钟的音频。上载较长的文件必须使用Google Cloud服务器进行异步存储。

关于ruby-on-rails - 在ReactJs中录制音频(FLAC或WAV),并使用ruby后端从Google使用Speech2Text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58828958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com