Google 语音转文本是否会消耗互联网数据来进行 Python 中的静默音频输入?

问题描述 投票:0回答:1

我目前正在使用 Python 的语音识别库和 Google 的语音转文本功能。我担心的是在音频处理过程中没有检测到语音的情况。尽管没有语音,但我知道音频数据仍然会发送到谷歌进行分析。我正在制作像 Alexa 和 google home 这样的语音助手,需要听到“嘿谷歌”等词。

我的问题是:即使音频输入中没有检测到语音,Google Speech-to-Text 是否也会消耗互联网数据?我想确保不会因无声音频输入而导致不必要的互联网使用。 如何解决这个问题,能否本地识别无声音频。对于此事的任何见解或澄清将不胜感激。谢谢!

python audio artificial-intelligence speech-to-text voice-recognition
1个回答
0
投票

假设您的代码如下所示:

import speech_recognition as sr

# obtain audio from the microphone
r = sr.Recognizer()
with sr.Microphone() as source:
    print("Say something!")
    audio = r.listen(source)
print("Google Speech Recognition thinks you said " + r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY"))

在这种情况下,无声片段不会发送到 google API,因为

Recognizer.listen
会在录制之前等待音频达到特定音量。该值可以在初始化
Recognizer
时配置。来自文档

def listen(self, source, timeout=None, phrase_time_limit=None, snowboy_configuration=None)

记录来自

source
的单个短语 (一个
AudioSource
实例)到一个
AudioData
实例,它 返回。 这是通过等待音频的能量高于
recognizer_instance.energy_threshold
(用户已开始 说话),然后录音,直到遇到
recognizer_instance.pause_threshold
几秒钟不说话或 没有更多的音频输入。不包括结尾的沉默。

timeout
参数是此操作的最大秒数 会等待一个短语开始,然后放弃并抛出一个
speech_recognition.WaitTimeoutError
例外。如果
timeout
None
,不会有等待超时。

phrase_time_limit
参数是最大秒数 这将允许短语在停止之前继续并且 返回在时间限制之前处理的短语部分 到达。生成的音频将是当时被切断的短语 限制。如果
phrase_timeout
None
,则不会有乐句时间 限制。

© www.soinside.com 2019 - 2024. All rights reserved.