gpt4 book ai didi

python - 直接从 SFTP 服务器将音频文件加载到 Python 语音识别模块(使用 Paramiko SFTPClient)

转载 作者:行者123 更新时间:2023-12-01 08:34:37 25 4
gpt4 key购买 nike

我想以这样的事实作为序言:我仍然是 Paramiko 的菜鸟,所以这可能是完全不可能的。

我要开一个.wav我的计算机上的服务器上的文件,以便对其进行一些语音识别。为此,我使用 Paramiko 创建一个 Transport,并使用它打开服务器上的音频文件。然后我将此文件设置为源并使用 SpeechRecognition 打印音频文件中所说的内容。但是,当我打开位于 remotefilepath 的文件时,它不再被识别为音频文件,因为我收到错误消息 AssertionError: Source must be an audio source 。打印type(file)我得到<class 'paramiko.sftp_file.SFTPFile'> .

我只想打开服务器上的文件并对其进行语音识别,而不必先将文件保存到我自己的计算机上。我有什么办法可以做到这一点吗?非常感谢任何帮助/建议

import paramiko
import speech_recognition as sr

remotefilepath = /path/to/file.wav
server_ip = 12.34.567.8
server_port = 22
transport = paramiko.Transport((server_ip, server_port))
transport.connect(username="foo", password="bar")
print "Connected to transport"
sftp = transport.open_sftp_client()
file = sftp.open(remotefilepath)

#print type(file)

r = sr.Recognizer()

with file as source:
r.adjust_for_ambient_noise(source)
audio = r.record(source)
try:
text = r.recognize_google(audio)
print "You said: {}".format(text)
except:
print "Sorry, I could not understand."

file.close()
sftp.close()
transport.close()
print "Closed transport. Ending program"

Windows 10 上的 Python 2.7。

最佳答案

adjust_for_ambient_noise需要执行 AudioSource作为一个论点。您正在传递类似文件的对象。

我相信你可以使用AudioFile而是使用 AudioSource 实现。 AudioFile 可以使用类文件对象创建:

with sftp.open(remotefilepath) as file:
with AudioFile(file) as source:
r.adjust_for_ambient_noise(source)

关于python - 直接从 SFTP 服务器将音频文件加载到 Python 语音识别模块(使用 Paramiko SFTPClient),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53779693/

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