在当今快节奏的世界中,保持知情至关重要,但是找时间阅读冗长的新闻文章可能具有挑战性。此外,用母语食用新闻可以增强理解和参与度。输入Newsvoiceai,这是一个创新的应用程序,旨在彻底改变我们访问新闻的方式。通过利用人工智能的力量,Newsvoiceai将现场的英语新闻文章转变为简洁的旁遮普音频摘要,这使得在旅途中保持更新比以往任何时候都更容易。
在这篇全面的文章中,我们将深入研究Newsvoiceai的运作方式,探索其背后的尖端技术,提供有关如何创建类似应用程序的分步指南,并整合将此应用程序带入生活的实际代码。
本文作为数据科学博客马拉松的一部分发表。
想象一下,在您的早晨通勤期间赶上最新消息,而不必阅读冗长的文章或与语言障碍斗争。 Newsvoice源于使新闻更容易获得的愿望,尤其是对于喜欢旁遮普语的听众而言,他们喜欢用母语消费内容。该应用程序弥合了几个空白:
无论您是忙碌的专业人士,通勤者还是视觉障碍的人,Newsvoiceai都会提供一种无缝的方式来保持知情。
让我们探索新闻杂志的分步工作流程,集成代码片段以说明每个部分。
NewsVoiceAi使用Guardian API,根据预定义的标准或用户喜好检索了顶级实时新闻文章。
#功能可从监护人API获取新闻文章 def fetch_news(api_key): 从theguardian导入theguardian_content content = theguardian_content.content(api = api_key) json_content = content.get_content_response() 尝试: 返回content.get_results(json_content) 除了KeyError为E: St.Error(f“错误获取文章:{e}”) 返回 []
解释:
对于每篇文章,我们获取全部内容以准备摘要。
#功能获取文章内容 def fetch_article_content(Artics_url,API_KEY): 响应= requests.get(article_url,params = {“ api-key”:api_key,“ show-blocks”:“ as all”}) 如果响应。STATUS_CODE== 200: atrest_data = response.json() body = artical_data.get(“响应”,{})。get(“ content”,{})。get(“ blocks”,{})。get(“ body”,[]) 如果身体: 返回“” .join(block.get(“ bodytextsummary”,“”)用于身体的块) 没有返回
解释:
我们使用OpenAI的GPT模型来总结文章,然后将摘要转化为旁遮普语。
#功能可以使用OpenAI API总结和翻译内容 def summarize_and_translate(content,api_key): 进口Openai OpenAI.API_KEY = API_KEY #摘要提示 summary_response = openai.chatcompletion.create( 型号=“ gpt-4”, 消息= [ {“角色”:“系统”,“ content”:“您是一个有用的助手,总结了新闻文章。 {“角色”:“用户”,“ content”:f“总结2-3个句子中的以下文章内容:\ n \ n {content}”} ],, max_tokens = 100 ) summary = summary_response.choices [0] .message.content.strip() #翻译提示 translation_response = openai.chatcompletion.create( 型号=“ gpt-3.5-turbo”, 消息= [ {“角色”:“系统”,“ content”:“您是专业翻译者,专门从事英语至旁遮普语的翻译。 {“角色”:“用户”,“ content”:f“将以下文本转换为punjabi:\ n \ n {summary}”} ],, max_tokens = 150 ) translation = translation_response.choices [0] .message.content.strip() 返回摘要,翻译
解释:
使用Sarvam TTS API将翻译的文本转换为音频。
#功能将旁遮普文本转换为语音使用Sarvam TTS API def punjabi_text_to_speech(punjabi_text,sarvam_api_key): url =“ https://api.sarvam.ai/text-to-spech” #将文本分成多达500个字符的块 块= [punjabi_text [i:i 500]在范围内(0,len(punjabi_text),500)]] audio_clips = [] 对于我,枚举(块)中的块: 有效载荷= { “输入”:[块], “ target_language_code”:“ pa-in”, “发言人”:“ Meera”, “音调”:0, “速度”:1.0, “响亮”:1.2, “ specy_sample_rate”:8000, “ enable_preprocessing”:是的, “模型”:“ Bulbul:V1” } 标题= { “ content-type”:“ application/json”, “ api-subscription-key”:sarvam_api_key } 响应= requests.post(url,标头=标题,json =有效载荷) 如果响应。STATUS_CODE== 200: audio_base64 = response.json()。get(“ audios”) 如果AUDIO_BASE64和LEN(AUDIO_BASE64)> 0: AUDIO_CLIPS.APPEND(AUDIO_BASE64 [0]) 别的: St.Error(f“未找到零件的音频{i 1}。”) 没有返回 别的: St.Error(f“无法将块{i 1}转换为语音:{response.status_code} - {response.text}”) 没有返回 #将所有base64音频块组合到一个字符串中 返回“” .join(audio_clips)
解释:
用户界面是使用简报构建的,提供了交互式体验。
#主精简应用 def main(): st.set_page_config( page_title =“ newsvoice:多语言新闻摘要”, page_icon =“?”, 布局=“宽” ) #用于改进样式的自定义CSS St.MarkDown(“” .main title { 字体大小:36px; 颜色:#2C3E50; 文字平衡:中心; 边缘底:30px; } 。 颜色:#3498DB; 边界底:2PX实心#3498DB; 填充底:10px; } “”,unsafe_allow_html = true) #应用标题 St.MarkDown('<h1>?newsvoice:多语言新闻摘要</h1>',unsafe_allow_html = true) #配置的侧边栏 st.sidebar.header(“新闻配置”) num_articles = st.sidebar.slider(“文章数”,1,5,3) #主要内容区域 St.MarkDown('<h2>最新新闻摘要</h2>',unsafe_allow_html = true) #获取和进程按钮 如果圣巴顿(“获取&翻译新闻”): 与St.Spinner(“获取和处理新闻...”): #获取新闻文章 articles = fetch_news(guardian_api_key) 如果不是文章: 圣瓦宁(“找不到文章。请再试一次。”) 别的: #流程最佳的文章数量 对于文章中的文章[:num_articles]: English_title = Article.get('WebTitle','无标题') atrest_url = action.get('apiurl') #为每篇文章创建一个容器 与St.Container(): 圣小牛(English_title) #获取文章内容 artern_content = fetch_article_content(aptrict_url,guardian_api_key)如果actits_url其他 如果不是Artics_content: St.Write(“本文没有内容。”) 继续 尝试: #总结和翻译 摘要,punjabi_translation = summarize_and_translate(article_content,openai_api_key) #显示英语摘要 St.MarkDown(“ **英语摘要:**”) 圣沃特(摘要) #显示旁遮普翻译 St.MarkDown(“ **旁遮普翻译:**”) St.Write(Punjabi_translation) #文本到语音 St.Write(“生成旁遮普音频...”) audio_base64 = punjabi_text_to_speech(punjabi_translation,sarvam_api_key) 如果AUDIO_BASE64: audio_bytes = base64.b64decode(audio_base64) St.Audio(Audio_bytes,格式=“音频/wav”) #在文章之间添加一个分隔线 St.MarkDown(“ ---”) 除例外为E: St.Error(f“错误处理文章:{e}”) # 页脚 St.MarkDown(“” --- 由Guardian API,OpenAI和Sarvam TTS提供支持 ”“”) #运行简化应用程序 如果__name__ ==“ __ -main __”: 主要的()
解释:
查看该存储库的录音中的录音中的音频质量 - newsvoiceai
要成功构建和运行NewsVoice,您需要从以下服务中获取API键:
以下是有关如何获取这些API键的分步指南。
监护人提供了一个免费的API,该API允许开发人员从其广泛的新闻文章存储库中访问内容。
Openai提供了强大的语言模型,例如GPT-4O和其他人,用于在NewsVoiceAi中用于文本摘要和翻译。
账单信息:
Sarvam AI提供了支持多种印度语言的文本到语音服务,其中包括旁遮普语约1,000卢比的免费学分。充分利用它!
现在让我们讨论下面的新闻杂志背后的技术:
Guardian API提供了大量现场新闻文章和元数据的访问权限。通过集成此API,NewsVoice确保用户收到最新和最相关的新闻内容。
Newsvoiceai利用Openai强大的多语言模型来处理摘要和翻译任务。
为了将翻译文本转换为语音,NewsVoiceAi使用了支持旁遮普语的高级TTS API。
Spartlit是一种开源应用程序框架,用于创建新闻杂志的交互式Web界面。
Newsvoiceai是使新闻更容易访问和根据个人需求量身定制的重要一步。通过整合Openai的高级AI技术和利用可靠的新闻来源,例如Guardian,该应用程序改变了我们消耗新闻的方式:
随着技术的不断发展,NewsVoice等应用程序将在使信息访问访问民主化方面发挥至关重要的作用。
立即尝试:NewsVoice GitHub存储库
A. Newsvoiceai是一个由AI驱动的应用程序,可将现场英语新闻文章转换为简洁的旁遮普音频摘要。它可以节省时间,打破语言障碍并提供一种无障碍,免提的方式来消费新闻,从而使用户受益。
Q2。我需要任何技术专业知识来使用新闻报吗?答:使用该应用程序作为最终用户不需要技术专长。您可以简单地与用户友好的界面进行交互,以获取,阅读和收听新闻摘要。但是,如果您想构建或自定义应用程序,则Python和API集成的基本知识将有所帮助。
Q3。 NewsVoiceAi可以免费使用吗?答:NewsVoiceAi应用程序本身是开源的,可以免费使用。但是,访问OpenAI和Sarvam TT等某些API可能会涉及成本,尤其是超出其免费使用层。重要的是要查看您计划使用的每种API服务的定价细节。虽然,如果您打算在本地使用它,则可以使用Ollama使用开源LLM。
Q4。翻译和摘要的准确性如何?A. NewsVoiceai利用OpenAI的高级AI模型,以其语言任务的高精度而闻名。尽管翻译和摘要通常是可靠的,但由于语言处理的细微差别,它们可能并不完美。欢迎反馈以帮助改善未来版本。
Q5。我可以自定义文章数量或选择特定的新闻主题吗?答:是的,该应用程序允许您选择通过侧边栏滑块获取的文章数量。当前,主题选择不可用,但是将来的增强功能可能包括按类别或关键字过滤新闻的能力。
本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。
以上是与newsvoiceai快速获取AI新闻的详细内容。更多信息请关注PHP中文网其他相关文章!