লিনাক্সের অধীনে ম্যাথমেটিকায় কোনও শব্দ নেই


10

আমার গাণিতিকের একটি বিশাল সংখ্যক ইভেন্ট রয়েছে যা সম্পর্কে আমি প্রতিক্রিয়া জানাতে চাই এবং এটি সর্বদা এটির জন্য পরীক্ষামূলক নয়, বিশেষত যেহেতু ইভেন্টগুলি এলোমেলোভাবে সময়ে বিতরণ করা হয়।
তাই আমি ইভেন্টটি পরীক্ষা করে যাওয়ার জন্য আমাকে মনে করিয়ে দেওয়ার জন্য একটি সাধারণ শব্দ যুক্ত করতে চেয়েছিলাম। আমি ব্যবহার করতে চেয়েছিলাম Beep[]কিন্তু আমি কোনও ফল পাই না, বাস্তবে, আমি এখনও অবধি বুঝতে পারি নি যে ম্যাথামেটিকা ​​কোনও শব্দই দিচ্ছে না।

আমি ডেবিয়ান স্কুইজ স্থিতিশীল ব্যবহার করি এবং শব্দ ব্যবহার করে অন্য কোনও অ্যাপ্লিকেশন নিয়ে সমস্যা নেই।

এটি ম্যাথামেটিকার সমস্ত সাম্প্রতিক সংস্করণ (7, 8 এবং 9) এবং আপনার সিস্টেমের সাউন্ড সেটআপের উপর নির্ভর করে সম্ভবত পুরানো সংস্করণগুলিকে প্রভাবিত করে।


তারা ভার্সন in-এ সাউন্ড কমান্ড যুক্ত করার পর থেকেই এমএমএতে এটি একটি সমস্যা হয়ে দাঁড়িয়েছে I আমি এটিকে ঠিক করার কথা মনে করি, তবে সাম্প্রতিকতম সংস্করণগুলিতে বিরক্ত করিনি। ডকুমেন্টেশন এখানে চেষ্টা করুন
সাইমন

এই প্রশ্নটি কি সুপারভাইজারে স্থানান্তরিত করা উচিত?
সাইমন

দুর্ভাগ্যক্রমে আমি এখনও কোন শব্দ পাই না।

আমি স্ট্যাকওভারফ্লোতে মূল পোস্টার। এই সাইট সম্পর্কে আমাকে বলার জন্য আপনাকে ধন্যবাদ, আমি জানতাম না যে এটি বিদ্যমান আছে। এটি দুর্দান্ত আমি এটির ভাল ব্যবহার করতে পারি।
enedene

উত্তর:


10

যতদূর আমি জানি, ম্যাথামেটিকা ​​লিনাক্সে সত্যই কখনও সাউন্ড সমর্থন করে নি। কমান্ডটি Playসংস্করণ 3 সংস্করণে প্রবর্তিত হয়েছিল এবং 6 নম্বর সংস্করণে পুরো সাউন্ড সিস্টেমটি ওভারহুল করা হয়েছে, আপনি যদি comp.soft-sys.math.mathemata অনুসন্ধান করেন, আপনি সংস্করণ 3-এ ফিরে সমস্ত প্রশ্ন ফিরে পাবেন version সংস্করণে, কমান্ড EmitSoundচালু করা হয়েছিল। এটি এখন বেশিরভাগ গাণিতিক শব্দ উত্পন্ন করে, তবে লিনাক্সের জন্য এটি ঠিক করার / হ্যাক করার কোনও দ্রুত উপায় আমি খুঁজে পাইনি, যেহেতু EmitSoundকিছুটা প্রিপ্রোসেসিং (কোন ধরণের অবজেক্টগুলি দেওয়া হয়েছিল তা নির্ধারণ করে) শব্দটি সীমান্তে যাওয়ার আগে? নির্ণয় করা।

বেশিরভাগ লিনাক্স ইনস্টলে ব্যবহৃত ডিফল্ট সাউন্ড ড্রাইভার / এপিআই হ'ল ALSA ( উইকি )। এটি ২০০২ সালে লিনাক্স কার্নেল ২.6 এ ডিফল্ট হয়ে যায় এবং ওএসএসকে "অবমূল্যায়ন" হিসাবে চিহ্নিত করা হয়েছিল (যদিও ওএসএস এখনও সক্রিয় বিকাশের অধীনে রয়েছে)। একাধিক Linux ডিস্ট্রিবিউশন এখন ব্যবহার PulseAudio যা অন্তর্নিহিত উদ্দেশ্যে ALSA শব্দের উপরে অস্ত যায়। (লিনাক্স সাউন্ডের আরও ভাল বোঝার সাথে যে কেউ এটি সম্পাদনা করতে দ্বিধা বোধ করা উচিত!)

ম্যাথমেটিকা ​​3 (1996) সংস্করণে শব্দ প্রবর্তন করেছিল এবং এভাবে তার * নিক্স রূপগুলির জন্য ওএসএস ব্যবহার করে। ওএসএস সত্ত্বেও প্রায় কোনও লিনাক্স ভেরিয়েন্টে এটি ডিফল্ট না হওয়ার পরেও এটি এখনও বিদ্যমান। এটি জানার ফলে আমাদের একটি সম্ভাব্য সমাধান পাওয়া যায়: একটি ওএসএস অনুকরণ স্তর ব্যবহার করুন (যেমন, উদাহরণস্বরূপ, http://wiki.debian.org/SoundFAQ )।

সবচেয়ে সহজ হ'ল একটি ইউজারস্পেস মোড এমুলেশন ব্যবহার করা এবং ম্যাথমেটিকাকে চালানো aoss

aoss mathematica

বা পালস অডিও সমতুল্য

padsp mathematica

এই উভয়ের ক্ষেত্রেই সমস্যাটি হ'ল এটি কেবল এমআইডিআই সাউন্ডের সাথে কাজ করে, নমুনাযুক্ত শব্দগুলির সাথে নয়। কমপক্ষে এটি আমার উবুন্টু ১০.১০ সিস্টেম এবং স্কট ক্রুজারের লিনাক্স সিস্টেমে ( ডাব্লুআরআই টেকনিক্যাল সাপোর্ট টিমের) ক্ষেত্রে সত্য। এই বিষয়ে একটি বাগ রিপোর্ট দায়ের করা হয়েছে।

বিকল্পভাবে, আপনি আপনার কর্নেলের মধ্যে ওএসএস সামঞ্জস্যতা লোড করতে পারেন

apt-get install alsa-oss
modprobe snd_pcm_oss
modprobe snd_mixer_oss

এবং আপনি যোগ করতে পারেন snd_pcm_ossএবং snd_mixer_ossকরতে /etc/modules তাদের boottime এ লোড করা হয়নি। এই মডিউলগুলি উবুন্টু ১০.১০ তে সহজেই উপলভ্য নয় যেহেতু তারা পিছনের সামঞ্জস্যটি সরিয়ে নেওয়ার সিদ্ধান্ত নিয়েছে। আমি আমার কার্নেলটি সংশোধন না করে উপরেরটি পরীক্ষা করতে পারি না ...


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

নমুনাযুক্ত সাউন্ডের জন্য, ব্যবহার করুন aplay:

ALSASound[snd_, "WAV"] := Module[{playCmd = "aplay", soundFileName},
  soundFileName = "/dev/shm/" <> ToString[Unique["MmaSound"]] <> ".wav";
  playCmd = playCmd <> " " <> soundFileName;
  Export[soundFileName, snd, "WAV"];
  Run["(" <> playCmd <> ";" <> "/bin/rm -f " <> soundFileName <> ")&"];]

যেমন ALSASound[Play[Sin[1000 t^2], {t, 0, 1}], "WAV"],।
আপনার Exportসরাসরি /dev/snd/ডিভাইসটিতে সরাসরি সক্ষম হওয়া উচিত ... তবে আমি এটি কাজ করতে পারিনি get

জন্য midiব্যবহার aplaymidi। এটি কাজ করার জন্য আপনার কোনও ধরণের সফ্টওয়্যার / হার্ডওয়্যার মিডি সিন্থ ইনস্টল করা দরকার। আমি timidity128 বন্দরে চলছে। ( সাহায্যের জন্য এখানে দেখুন )

ALSASound[snd_, "MIDI"] := 
 Module[{playCmd = "aplaymidi", port = "128:0", soundFileName},
  soundFileName = "/dev/shm/" <> ToString[Unique["MmaSound"]] <> ".mid";
  playCmd = playCmd <> " -p " <> port <> " " <> soundFileName;
  Export[soundFileName, snd, "MIDI"];
  Run["(" <> playCmd <> ";" <> "/bin/rm -f " <> soundFileName <> ")&"];]

যেমন, ALSASound[Sound[SoundNote /@ CharacterRange["A", "G"]], "MIDI"]

আপনি এখন ALSASoundযেকোন সাউন্ড অবজেক্টের চারপাশে উপযুক্ত কমান্ডটি মোড়ানো করতে পারেন । আপনি Playব্যবহারের জন্য নতুন সংজ্ঞা দিতে পারেন ALSASound:

SetOptions[Play, DisplayFunction -> ((ALSASound[#, "WAV"]; #) &)];

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

Play[Sin[1000 t^2], {t, 0, 1}]

প্লে

তবে স্টার্ট / স্টপ বোতামগুলি কার্যকর হবে না, যেহেতু সেগুলি ভিত্তিক EmitSound

একটি সাধারণ Beep[]সমতুল্য করতে, চেষ্টা করুন

ALSABeep[] := Play[Sin[5000 t], {t, 0, .1}, 
                   DisplayFunction -> (ALSASound[#, "WAV"]&)]

অবশেষে, আপনি যদি উত্সব পাঠ্য থেকে স্পিচ (বা অন্য কোনও পাঠ্য-থেকে-স্পিচ প্রোগ্রাম) ইনস্টল করেন তবে আপনি ম্যাথমেটিকা Speakকার্যকারিতা প্রতিস্থাপন করতে পারেন , যেমন,

FestivalSpeak[str_String] := (Run["(echo \"" <> str <> "\" | esddsp festival --tts)&"];)
FestivalSpeak[expr_] := FestivalSpeak[SpokenString[expr]]

সাইমন, এই উত্তরটি কৌশলটি করেছে, আপনাকে অনেক ধন্যবাদ।
enedene

বিটিডব্লিউ, কেউ কি জানেন যে ম্যাথমেটিকা ​​ভবিষ্যতে লিনাক্সের উপর সাউন্ড সাপোর্ট করার পরিকল্পনা করে? আমি অনুমান করতে পারি যে এগুলি নির্দিষ্ট সফ্টওয়্যার যেখানে লিনাক্সে এটি ব্যবহারের শতাংশ মানুষ অন্যান্য সফ্টওয়্যারের তুলনায় অনেক বেশি।
enedene

@edene: আমি আজ ডাব্লুআরআই সমর্থন সম্পর্কে প্রশ্ন জিজ্ঞাসা। আশা করি আগামী কয়েকদিনের মধ্যে আমরা একটি উত্তর পেয়ে যাব ...
সাইমন

ধন্যবাদ সাইমন, আপনি সাহায্যকারী হয়ে গেছেন। আপনি যদি কোনও উত্তর পান তবে দয়া করে এটি এখানে পোস্ট করুন বা একটি লিঙ্ক দিন।
enedene

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