python - GoogleTrans Python 不翻译

我正在为我的项目使用 GoogleTrans。实际上我有一段马拉地语文本,它是从“语音到文本”中获得的,但是当我将该文本转换为英语时,它没有正确翻译。

但是当我在网站上使用谷歌翻译时,它翻译正确且准确率 100%?

Image

这是一段代码:

import speech_recognition as sr
from cltk.corpus.utils.importer import CorpusImporter
from googletrans import Translator
import goslate
import googletrans

print("Hello World")

filename = r"C:\Users\TOSHIBA\Documents\Mini Project-2 (Trimester 4)\Project 1- (Document Summary)\Dataset\Voice\Gaurav.wav"
r = sr.Recognizer()

with sr.AudioFile(filename) as source:
    audio_data = r.record(source)

    text = r.recognize_google(audio_data,language='mr')
    print("Text\n",text)

    print(type(text))
    
    translator = Translator()
    converted_text = translator.translate(text)
    print("Converted text\n",converted_text)

    with open("D:/output.txt",'w',encoding="utf-8") as f:
        f.write(text)
        f.write(str(converted_text))

请指教,我该怎么做?

最佳答案

https://pypi.org/project/googletrans是一个非官方包(不是由谷歌创建)。同样在免责声明中,它具有以下内容“...此 API 不保证库在任何时候都能正常工作...”。如果您想要稳定性,请使用官方 Google API https://cloud.google.com/translate/docs

无论如何,下面是一个显示翻译工作的测试:

from googletrans import Translator

translator = Translator()
results =translator.translate('हॅलो वर्ल्ड')
print(results.text)

输出:

Hello World

我不确定您遇到了什么问题。但是,我建议将您的代码重构为方法,然后您可以单独进行测试。

下面的代码经过测试,但应该有助于调试:

import speech_recognition as sr
#from cltk.corpus.utils.importer import CorpusImporter
from googletrans import Translator
#import goslate
#import googletrans

def provideAudioToText(filename):
    r = sr.Recognizer()
    with sr.AudioFile(filename) as source:
    audio_data = r.record(source)
    return r.recognize_google(audio_data,language='mr')

def translate(text):
    translator = Translator()
    results = translator.translate(text)
    return results.text

def Save(filename, original_text, converted_text):
    with open(filename,'w',encoding="utf-8") as f:
        f.write(original_text)
        f.write(str(converted_text))

original_text = provideAudioToText(r"C:\Users\TOSHIBA\Documents\Mini Project-2 (Trimester 4)\Project 1- (Document Summary)\Dataset\Voice\Gaurav.wav")
print("Text\n", original_text)
print(type(original_text))
converted_text = translate(original_text)
print("Converted text\n",converted_text)
Save("D:/output.txt", original_text, converted_text) 

https://stackoverflow.com/questions/63077115/

相关文章:

perl - 使用 sed 或 perl 替换两个字符之间的多个字符

python-3.x - 在 Windows 中安装 Python 3.8 和 dbt 后无法获取

java - 在 GitLab CICD 中注入(inject) application.prope

c - 用C写的小程序

javascript - 在嵌套导航器中导航时未定义 route.params?

java - 使用 Oshi Java 库获取 Windows PE 的硬件和操作系统信息

python - 如何在 Python 中使用正则表达式将所有内容匹配到双换行符 "\n\n"?

rabbitmq - 陈旧的 rabbitmq 数据队列文件吃光了磁盘

css - Marp-CLI : How to use a custom theme that im

python - pandas Groupby 求和并连接