在當今快節奏的世界中,保持知情至關重要,但是找時間閱讀冗長的新聞文章可能具有挑戰性。此外,用母語食用新聞可以增強理解和參與度。輸入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中文網其他相關文章!