Dalam dunia yang pantas hari ini, tetap dimaklumkan adalah penting, tetapi mencari masa untuk membaca artikel berita yang panjang boleh mencabar. Di samping itu, memakan berita dalam bahasa ibunda seseorang meningkatkan pemahaman dan penglibatan. Masukkan NewsVoiceai, aplikasi inovatif yang direka untuk merevolusikan cara kami mengakses berita. Dengan memanfaatkan kuasa kecerdasan buatan, Newsvoiceai mengubah artikel berita Inggeris secara langsung ke dalam ringkasan audio Punjabi ringkas, menjadikannya lebih mudah dari sebelumnya untuk terus dikemas kini semasa dalam perjalanan.
Dalam artikel yang komprehensif ini, kami akan menyelidiki kerja-kerja Newsvoiceai, meneroka teknologi canggih di belakangnya, memberikan panduan langkah demi langkah tentang bagaimana anda boleh membuat aplikasi yang sama, dan mengintegrasikan kod sebenar yang membawa aplikasi ini kepada kehidupan.
Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data.
Bayangkan menangkap berita terkini semasa perjalanan pagi anda tanpa perlu membaca artikel yang panjang atau perjuangan dengan halangan bahasa. Newsvoice dilahirkan dari keinginan untuk membuat berita lebih mudah diakses, terutamanya untuk penonton berbahasa Punjabi yang lebih suka memakan kandungan dalam bahasa ibunda mereka. Aplikasi ini menjembatani beberapa jurang:
Sama ada anda seorang profesional yang sibuk, komuter, atau seseorang yang mengalami masalah visual, Newsvoiceai menawarkan cara yang lancar untuk terus dimaklumkan.
Mari kita meneroka aliran kerja langkah demi langkah, mengintegrasikan coretan kod untuk menggambarkan setiap bahagian.
Menggunakan API Guardian, Newsvoiceai mengambil artikel berita teratas berdasarkan kriteria yang telah ditetapkan atau keutamaan pengguna.
# Fungsi untuk mengambil artikel berita dari API Guardian def fetch_news (API_KEY): Dari theguardian import theguardian_content kandungan = theguardian_content.content (api = api_key) json_content = content.get_content_response () Cuba: kembali kandungan.get_results (json_content) Kecuali keyerror sebagai e: St.error (f "Ralat mengambil artikel: {e}") kembali []
Penjelasan:
Untuk setiap artikel, kami mengambil kandungan penuh untuk menyediakannya untuk ringkasan.
# Fungsi untuk mengambil kandungan artikel def fetch_article_content (artikel_url, api_key): Response = requests.get (article_url, params = {"api-kunci": api_key, "show-blocks": "all"}) Jika response.status_code == 200: article_data = response.json () body = article_data.get ("Response", {}). GET ("Content", {}). Get ("Blocks", {}). Get ("body", []) Sekiranya badan: kembali "" .join (block.get ("bodyTextSummary", "") untuk blok dalam badan) Kembalikan tiada
Penjelasan:
Kami menggunakan model GPT OpenAI untuk meringkaskan artikel itu dan kemudian menerjemahkan ringkasan ke Punjabi.
# Berfungsi untuk meringkaskan dan menterjemahkan kandungan menggunakan API Openai def summarize_and_translate (kandungan, api_key): Import Openai openai.api_key = API_KEY # Ringkasan Prompt summary_response = openai.chatcompletion.create ( Model = "GPT-4", Mesej = [ {"peranan": "sistem", "kandungan": "Anda adalah pembantu yang membantu yang meringkaskan artikel berita dengan ringkas."}, {"peranan": "pengguna", "kandungan": f "meringkaskan kandungan artikel berikut dalam 2-3 ayat: \ n \ n {content}"} ], max_tokens = 100 ) ringkasan = summary_response.choices [0] .message.content.strip () # Prompt terjemahan terjemahan_response = openai.chatcompletion.create ( Model = "GPT-3.5-Turbo", Mesej = [ {"Peranan": "Sistem", "Kandungan": "Anda adalah penterjemah profesional yang mengkhususkan diri dalam bahasa Inggeris untuk terjemahan Punjabi."}, {"peranan": "pengguna", "kandungan": f "menterjemahkan teks berikut ke Punjabi: \ n \ n {Summary}"} ], max_tokens = 150 ) terjemahan = terjemahan_response.choices [0] .message.content.strip () Pulangan Ringkasan, Terjemahan
Penjelasan:
Teks yang diterjemahkan diubah menjadi audio menggunakan API Sarvam TTS.
# Fungsi untuk menukar teks Punjabi ke ucapan menggunakan Sarvam TTS API def punjabi_text_to_speech (punjabi_text, sarvam_api_key): url = "https://api.sarvam.ai/text-to-speech" # Split teks ke dalam potongan sehingga 500 aksara ketulan = [punjabi_text [i: i 500] untuk i dalam julat (0, len (punjabi_text), 500)] audio_clips = [] Untuk saya, bahagian dalam menghitung (ketulan): muatan = { "Input": [Chunk], "sasaran_language_code": "pa-in", "Speaker": "Meera", "padang": 0, "laju": 1.0, "Kekecewaan": 1.2, "Speech_sample_rate": 8000, "Enable_preprocessing": Benar, "Model": "Bulbul: V1" } tajuk = { "Jenis kandungan": "aplikasi/json", "API-SUBSCRIPTION-KEY": SARVAM_API_KEY } respons = requests.post (url, headers = headers, json = muatan) Jika response.status_code == 200: audio_base64 = response.json (). Dapatkan ("audios") jika audio_base64 dan len (audio_base64)> 0: audio_clips.append (audio_base64 [0]) lain: St.error (f "tiada audio yang dijumpai sebagai tindak balas untuk bahagian {i 1}.") Kembalikan tiada lain: St.error (f "gagal menukar bahagian {i 1} ke ucapan: {response.status_code} - {response.text}") Kembalikan tiada # Menggabungkan semua ketulan audio Base64 ke dalam satu rentetan kembali "" .join (audio_clips)
Penjelasan:
Antara muka pengguna dibina menggunakan streamlit, memberikan pengalaman interaktif.
# Aplikasi streamlit utama def utama (): St.Set_page_config ( page_title = "NewsVoice: Ringkasan Berita Berbilang Bahasa", page_icon = "?", susun atur = "lebar" ) # CSS tersuai untuk gaya yang lebih baik Stmarkdown ("" " <yaya> .main-title { saiz font: 36px; Warna: #2C3E50; Teks-Align: Pusat; Margin-Bottom: 30px; } .section-header { Warna: #3498dB; Sempadan-Bottom: 2PX Solid #3498dB; Padding-Bottom: 10px; } "" ", unsafe_allow_html = benar) # Tajuk App St.Markdown ('<h1>? NewsVoice: Ringkasan Berita Berbilang Bahasa </h1>', unsafe_allow_html = true) # Bar sisi untuk konfigurasi St.Sidebar.Header ("Konfigurasi Berita") num_articles = st.sidebar.slider ("Bilangan artikel", 1, 5, 3) # Kawasan Kandungan Utama St.Markdown ('<h2> ringkasan berita terkini </h2>', unsafe_allow_html = true) # Mengambil dan memproses butang Jika St.Button ("Ambil & Terjemahan Berita"): dengan St.Spinner ("Mengambil dan memproses berita ..."): # Ambil artikel berita artikel = fetch_news (guardian_api_key) Sekiranya tidak artikel: St.Warning ("Tidak ada artikel yang dijumpai. Cuba lagi.") lain: # Proses bilangan artikel yang dipilih Untuk artikel dalam artikel [: num_articles]: english_title = article.get ('webtitle', 'tiada tajuk tersedia') artikel_url = artikel.get ('apiurl') # Buat bekas untuk setiap artikel dengan St.Container (): St.Subheader (english_title) # Ambil kandungan artikel artikel_content = fetch_article_content (article_url, guardian_api_key) jika artikel_url lain tiada jika tidak artikel_content: St.Write ("Tiada kandungan tersedia untuk artikel ini.") Teruskan Cuba: # Meringkaskan dan menterjemahkan Ringkasan, punjabi_translation = summarize_and_translate (artikel_content, openai_api_key) # Paparkan ringkasan Bahasa Inggeris St.Markdown ("** Ringkasan Bahasa Inggeris: **") Stwrite (ringkasan) # Paparkan terjemahan Punjabi Stmarkdown ("** Punjabi Terjemahan: **") St.Write (punjabi_translation) # Teks-ke-ucapan St.Write ("Menjana Audio Punjabi ...") audio_base64 = punjabi_text_to_speech (punjabi_translation, sarvam_api_key) Sekiranya audio_base64: audio_bytes = base64.b64decode (audio_base64) St.udio (audio_bytes, format = "audio/wav") # Tambahkan pembahagi antara artikel Stmarkdown ("---") Kecuali pengecualian sebagai e: St.error (f "Artikel Pemprosesan Ralat: {E}") # Footer Stmarkdown ("" " --- Dikuasakan oleh API Guardian, Openai, dan Sarvam TTS "" ") # Jalankan aplikasi Streamlit jika __name__ == "__main__": utama ()</yaya>
Penjelasan:
Lihat kualiti audio dalam rakaman yang dimuat naik di readme repositori ini - Newsvoiceai
Untuk berjaya membina dan menjalankan NewsVoice, anda perlu mendapatkan kunci API dari perkhidmatan berikut:
Berikut adalah panduan langkah demi langkah tentang cara memperoleh kunci API ini.
The Guardian menyediakan API percuma yang membolehkan pemaju mengakses kandungan dari artikel berita mereka yang luas.
Openai menawarkan model bahasa yang kuat seperti GPT-4O dan lain-lain, yang digunakan untuk ringkasan teks dan terjemahan di Newsvoiceai.
Maklumat Pengebilan:
Sarvam AI menyediakan perkhidmatan teks-ke-ucapan yang menyokong pelbagai bahasa India, termasuk Punjabi dengan kira-kira ₹ 1,000 kredit percuma. Memanfaatkannya!
Marilah kita membincangkan teknologi di sebalik NewsVoice di bawah:
API Guardian menyediakan akses kepada banyak artikel berita dan metadata secara langsung. Dengan mengintegrasikan API ini, NewsVoice memastikan pengguna menerima kandungan berita terkini dan relevan.
Newsvoiceai memanfaatkan model bahasa berbilang bahasa yang kuat untuk mengendalikan kedua -dua tugas ringkasan dan terjemahan.
Untuk menukar teks yang diterjemahkan ke dalam ucapan, Newsvoiceai menggunakan API TTS maju yang menyokong Punjabi.
StreamLit adalah rangka kerja aplikasi sumber terbuka yang digunakan untuk membuat antara muka web interaktif untuk NewsVoice.
Newsvoiceai mewakili langkah penting ke arah membuat berita lebih mudah dan disesuaikan dengan keperluan individu. Dengan mengintegrasikan teknologi AI maju dari OpenAI dan memanfaatkan sumber berita yang boleh dipercayai seperti The Guardian, aplikasi ini mengubah cara kami menggunakan berita:
Memandangkan teknologi terus berkembang, aplikasi seperti NewsVoice akan memainkan peranan penting dalam mendemokrasikan akses kepada maklumat.
Cubalah hari ini: repositori github newsvoice
A. Newsvoiceai adalah aplikasi berkuasa AI yang mengubah artikel berita Inggeris secara langsung menjadi ringkasan audio Punjabi ringkas. Ia memberi manfaat kepada pengguna dengan menjimatkan masa, melanggar halangan bahasa, dan menyediakan cara yang mudah diakses dan bebas untuk menggunakan berita.
S2. Adakah saya memerlukan kepakaran teknikal untuk menggunakan newsvoice?A. Tiada kepakaran teknikal yang diperlukan untuk menggunakan aplikasi sebagai pengguna akhir. Anda hanya boleh berinteraksi dengan antara muka mesra pengguna untuk mengambil, membaca, dan mendengar ringkasan berita. Walau bagaimanapun, jika anda ingin membina atau menyesuaikan aplikasi, pengetahuan asas mengenai integrasi Python dan API akan membantu.
Q3. Adakah newsvoiceai percuma untuk digunakan?A. Aplikasi Newsvoiceai itu sendiri adalah sumber terbuka dan bebas untuk digunakan. Walau bagaimanapun, mengakses API tertentu seperti OpenAI dan Sarvam TTS mungkin melibatkan kos, terutamanya di luar peringkat penggunaan percuma mereka. Adalah penting untuk mengkaji butiran harga setiap perkhidmatan API yang anda rancangkan untuk digunakan. Walaupun, jika anda merancang untuk menggunakannya secara tempatan, anda boleh menggunakan sumber terbuka LLM menggunakan Ollama.
Q4. Betapa tepatnya terjemahan dan ringkasan?A. Newsvoiceai menggunakan model AI maju dari OpenAI, yang terkenal dengan ketepatan tinggi mereka dalam tugas bahasa. Walaupun terjemahan dan ringkasan umumnya boleh dipercayai, mereka mungkin tidak sempurna kerana nuansa pemprosesan bahasa. Maklum balas adalah dialu -alukan untuk membantu meningkatkan versi masa depan.
S5. Bolehkah saya menyesuaikan bilangan artikel atau memilih topik berita tertentu?A. Ya, aplikasi ini membolehkan anda memilih bilangan artikel untuk diambil melalui slider bar sisi. Pada masa ini, pemilihan topik tidak tersedia, tetapi peningkatan masa depan mungkin termasuk keupayaan untuk menapis berita mengikut kategori atau kata kunci.
Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan atas budi bicara penulis.
Atas ialah kandungan terperinci Dapatkan Berita AI Cepat dengan Newsvoiceai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!