পাইথনের সাথে অডিও ফাইল বাজানো


38

আমি স্ট্যান্ডার্ড অডিও আউটপুট ব্যবহার করে আমার রাস্পবেরি পাইতে অডিও ফাইল খেলতে সক্ষম হয়ে পাইথন লাইব্রেরিটি সন্ধান করছি।

এখনও অবধি আমি বেশ কয়েকটি চেষ্টা করেছি, কিন্তু এর মধ্যে কেউ কাজ করছে বলে মনে হয় না। যদিও পাইগলেট আমার নিয়মিত কম্পিউটারে সূক্ষ্মভাবে কাজ করে, এটি রাস্পবেরি পাইতে একটি ত্রুটি ঘটায়। এখানে কি পাইথন লাইব্রেরি ব্যবহার করা সহজ হিসাবে প্রমাণিত হয়েছে?


ব্যবহারযোগ্য হিসাবে সহজ হিসাবে প্রমাণিত এক ধরণের আপেক্ষিক, কিন্তু আমি স্ট্যাক ওভারফ্লোতে এখানে অনুরূপ প্রশ্নের পাইগামের বিকল্প পোস্ট করেছি । মূলত সেই বিকল্পটি হ'ল vlc.py (libVLC পাইথন মডিউল, যা খুব ভালভাবে বজায় থাকে)।
বেন

আরও নীচে একটি প্রশ্ন বলছে যে পাইগলেট আরপিআই-তে কাজ করে। আপনি আপনার ত্রুটি সঙ্গে আপডেট করতে পারেন?
ব্রায়ান বালকোভস্কি

উত্তর:


31

আমি বহুল প্রচারিত পাইগামের প্রস্তাব দিই আমি ভুল হতে পারি, তবে আমি বিশ্বাস করি যে এটি পাইতে প্রাক ইনস্টল করা আছে। অডিও ফাইল খেলতে আপনি পাইগাম মিক্সার মিউজিক মডিউলটি ব্যবহার করতে পারেন । আমি নীচে কিছু উদাহরণ কোড অন্তর্ভুক্ত করেছি।

ধরে নিলাম আমাদের কাছে একটি অডিও ফাইল রয়েছে myFile.wav

import pygame
pygame.mixer.init()
pygame.mixer.music.load("myFile.wav")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy() == True:
    continue

দ্রষ্টব্য: যদি এটি ব্যর্থ হয় তবে দয়া করে টার্মিনালে যান এবং আপনার সিস্টেমটি আপডেট করুন

apt-get update
apt-get upgrade

এবং আবার চেষ্টা করো.


2
যদি আপনার একাধিক সাউন্ড বাজতে থাকে (যা সম্ভবত) তবে প্রতিটিটির জন্য একটি পাইগেম.মিক্সার তৈরি করা ভাল।
ফ্রেঞ্চিস

আমি যা চাই তা চাই, তবে আমার মাদারবোর্ডের শব্দটিতে ড্রাইভার নেই তাই আমি একটি ইউএসবি সাউন্ড কার্ড ব্যবহার করি। এটি espeakঠিক খেলে , তবে এটি নয়।
এসডসোলার

10

অন্যান্য ব্যবহারকারীর ইনপুটকে সাড়া দেওয়ার সময় আমার পটভূমিতে ত্রিশ সেকেন্ড থেকে একটি গান বাজানোর জন্য একটি স্ক্রিপ্টের দরকার ছিল। আমি তখন চাইছিলাম এটি কোনও অনুষ্ঠানের গানটি শেষ করা উচিত।

আমি মনে করি না এটি বিশেষভাবে মার্জিত, তবে আমি একটি ব্যাকগ্রাউন্ড এমপ্লেয়ার প্রক্রিয়াতে একটি পাইপ খুলেছি।

import subprocess
player = subprocess.Popen(["mplayer", "song.mp3", "-ss", "30"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

তারপরে, আমি এমপ্লেয়ার প্রক্রিয়াটি শেষ করতে চাইলে পাইপটিতে প্রস্থান করার জন্য কেবল "কিউ" লিখেছিলাম।

player.stdin.write("q")

আপনি প্লেব্যাক নিয়ন্ত্রণ করতে এইভাবে পাস করতে পারেন এমন সমস্ত কমান্ডের এমপ্লেয়ার ডকুমেন্টেশন দেখুন।

আশা করি কিছুটা সহায়ক!


1
এটি আসলে খুব ঝরঝরে। এই অ্যাডফ্রুট টিউটোরিয়ালটি শব্দ বাজানোর বিষয়ে কথা বলে তবে তা থামায় না।
জিডন

6

আর একটি বিকল্প হ'ল mpg321কমান্ড লাইন থেকে এটি ব্যবহার এবং প্রার্থনা করা।

apt-get install mpg321

তারপরে পাইথনে:

import os

os.system('mpg321 foo.mp3 &')

পাইগাম প্রায় অবশ্যই শক্তিশালী তবে এটি আপনার প্রয়োজনগুলি নির্ভর করে বলে আমি মনে করি।


1
আমি নিজেই এ সম্পর্কে ভেবেছিলাম, তবে আমি ভেবেছিলাম এটি খুব মার্জিত নয়, কারণ এটি বিরতি, ভলিউম নিয়ন্ত্রণ ইত্যাদি অনেক শক্ত করে তোলে।
স্টেইন

এটা ভীষণ ধীর।
অ্যালেক্স

3

আপনার গ্রাফিক্সের প্রয়োজন না থাকলে আমি পাইগামের চেয়ে পাইগলেট সুপারিশ করব । আমার দৃষ্টিতে এটি সহজ, আরও মার্জিত এবং উন্নত রক্ষণাবেক্ষণ। আবার, আমি আশা করি এটি স্বাদের বিষয় হতে পারে।


1
আপনি কিভাবে এটি ব্যবহার করবেন?
এসডসোলার

পাইগলেট কেবল তখনই প্রদর্শিত হয় যখন কোনও প্রদর্শন পাওয়া যায়; এটিকে দূর থেকে বা ডেমন হিসাবে চালানো কেবল শব্দ বাজানোর উদ্দেশ্যে কাজ করে না।
oh7lzb

0

পাইগাম আপনাকে বিভিন্ন চ্যানেলে শব্দ লোড এবং প্লে করার একটি দুর্দান্ত এবং সহজ উপায় দেয়।


0

আপনি পাইপের মাধ্যমে বেশ কয়েকটি বাহ্যিক খেলোয়াড় ব্যবহার করতে পারেন। তবে আপনি প্রায় সর্বদা গতি হারাতে পারেন। প্লেব্যাক নিয়ন্ত্রণেও সমস্যা রয়েছে।

আমি আপনাকে pyaudio সুপারিশ, এটি ঠিক আছে।

আপনি যদি সংকুচিত ফাইলগুলি খেলতে চান তবে আমি আমার মডিউল ডিকোডার.পিতে আপনাকে নির্দেশ করতে মুক্ত হব। আপনি এটি পিপিআইতে খুঁজে পেতে পারেন।

এটি সাবপ্রসেসগুলিও ব্যবহার করে তবে প্লেয়ারের পরিবর্তে ডিকোডারকে কল করে। তারা প্রচুর সিপিইউ ব্যবহার করে না, এবং তাদের মধ্যে কিছু হার্ডওয়্যার এক্সিলারেশন কীভাবে ব্যবহার করতে হয় তা জানেন। এরপরে আপনি কাঁচা অডিও ডেটা আউটপুট করতে পিউডিয়ো বা কিছু ব্যবহার করতে পারেন। আপনি যদি চান তবে আপনি পাইগেম.সান্ডাররে ব্যবহার করে পাইগেম ব্যবহার করতে পারেন। এইভাবে আপনি পাইগাম সমর্থনের চেয়ে বেশি ফর্ম্যাট খেলতে পারেন।

আমি পাইকিউটি জিইউআই পরিবেশে ডিকোডার.পি চেষ্টা করেছি, পিয়াদিও দিয়ে এবং এপ্লেকে বহিরাগত খেলোয়াড় হিসাবে ব্যবহার করেছি। সেটি ছিল রাস্পবেরি পাই বিতে

উভয় ক্ষেত্রেই ফলাফল বেশ সন্তোষজনক ছিল।

সরলতা নিয়ে প্রশ্ন করা যায়।

ডিকোডার.পি নিজেই খুব সহজ, তবে আপনাকে এটি অন্যান্য লিবসের সাথে সংযুক্ত করতে হবে এবং এটি কোড লাইনগুলিকে বাড়িয়ে তোলে।

ডিকোডার.পি সহ অন্তর্ভুক্ত ফাইলগুলি কীভাবে খেলতে হয় তার একটি উদাহরণ রয়েছে।


0

আমি ওএসএমসি (ডেবিয়ান) চালিয়ে যাচ্ছি এবং আমার টিভি স্পিকারগুলির মাধ্যমে আমি শুনতে পেলাম, যা এইচডিএমআই দ্বারা সংযুক্ত রয়েছে। https://youtu.be/p2ljmTE67gs

আমার পদ্ধতিটি এখানে @ এমএমএসবাবেএনএক্সএক্স দ্বারা পোস্ট করা উপরের সমাধানের ভিত্তিতে তৈরি হয়েছিল । মূলত, আমাকে যুক্ত dtparam=audio=onকরতে হয়েছিল/boot/config.txt


আমি মনে করি টিএস মানে "স্ট্যান্ডার্ড অডিও আউটপুট" উল্লেখ করার সময় 3.5 মিমি জ্যাক। এই 3.5 জ্যাক এছাড়াও কাজ করে?
বেক্স

আচ্ছা বুঝলাম. হুম এটা সম্ভবত হবে না, যদিও আমি এটি চেষ্টা করেছিলাম না।
জিজিংক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.