আমি একটি প্রোগ্রাম লিখতে চেষ্টা করছি যা রাস্পবেরি পাইতে ওপেন সোর্স প্রোগ্রামগুলি ব্যবহার করে সি এর পাঠ্য এবং পিডিএফ নথি পড়তে সহায়তা করবে।
প্রোগ্রামটি সহজ, জটিল কিছু নয় .....
আমি আমার ল্যাপটপ থেকে এসএসএসের মাধ্যমে রাস্পবেরি পাইয়ের সাথে সংযোগ করছি ... এক্স ফরোয়ার্ডিং ঠিকঠাক কাজ করছে কারণ আমি কোনও সমস্যা ছাড়াই কমান্ড লাইন থেকে এক্স অ্যাপ্লিকেশনগুলি চালু করতে পারি।
আমি রাস্পবেরি পাইতে অ্যাপাচি 2 ব্যবহার করছি এবং আমি এই প্রোগ্রামটির জন্য একটি ইউজার ইন্টারফেস তৈরি করেছি যেখানে আপনি পাঠ্য আটকানো, পাঠ্য ফাইল বা পিডিএফ ফাইল আপলোড করতে পারেন।
পাঠ্যটি স্প্যাসিকে বক্তৃতাতে রূপান্তরিত করা হয়েছে যা আউটপুটটিকে একটি তরঙ্গ ফাইলে সংরক্ষণ করে।
এখন সমস্যাটি আমি ব্যবহার করছি:
system("xmms2 play file.wav &")
সি কোডে ........ কেবল একটি সংক্ষিপ্ত বিবরণ
এটি সংকলিত হয় ..... যখন আমি ওয়েব পৃষ্ঠা থেকে এটি চেষ্টা করি তখন এটি ত্রুটিগুলি প্রদর্শন করে:
Gtk-WARNING **: cannot open display: localhost:10.0
cannot start xmms2d.....failed to start xmms2 server
এমনকি আমি অ্যাকুয়ালং নামে আরেকটি অডিও প্লেয়ার চেষ্টা করেছিলাম এবং এটি একবার কাজ করেছিল তবে পরের দিন যখন আমি কম্পিউটার পুনরায় চালু করি তখন এটি আর কাজ করে না।
আমি চারপাশে গুগল করেছি export DISPLAY=:0.0
এবং ক্লায়েন্ট এবং হোস্টের কাছে নিশ্চিত হোস্টনাম তৈরি করা থেকে শুরু করে লোকালহোস্ট নয় তবে কোনও সাফল্য নেই
সুতরাং আমি মনে করি সম্ভবত সি প্রোগ্রামে আমি যুক্ত না করে এমন কিছু আছে, সম্ভবত একটি শিরোনাম ফাইল যুক্ত করা দরকার বা এর মতোই কিছু ..... Gtk + আমার রাস্পবেরিতে ইনস্টল করা আছে ....
অথবা হতে পারে আমার এটি সি প্রোগ্রাম হিসাবে না করা উচিত তবে বাশ বা পিএইচপি সবই করা উচিত ....
আমি যদি ওয়াভ ফাইলটি খেলতে অ্যাপলে ব্যবহার করি তবে আমি শব্দ আউটপুট পাব, কেবলমাত্র তফাতটি হ'ল কমান্ড লাইন এবং ব্যবহারকারী ইন্টারফেস সহ আমার কিছু দরকার। সুতরাং আমি প্রোগ্রাম থেকে আদেশগুলি প্রেরণ করতে পারি এবং ব্যবহারকারী যখনই চান ফাইলটি বিরতি দিতে এবং প্লে করতে পারে।
প্লিস কিছু পরামর্শ প্রয়োজন .... এখানে কোড
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <wiringPi.h>
char readcmd(void) //reading from text file /home/pi/cmdrdy.txt first character is read
{ //whenever text is received a 1 is written to this file, 2 for file received
FILE *stream;
int ch;
if( (stream = fopen("/home/pi/txtrdy.txt", "r")) == NULL )
return 0;
ch = fgetc( stream );
fclose( stream );
return (ch-'0');
}
void reset()
{
FILE *ft;
char ch;
ft = fopen( "/home/pi/cmdrdy.txt", "w" );
ch = '0';
fprintf(ft, "%c", ch );
fclose(ft);
}
void checktxt(){
if(readcmd() == 1)
{
system("espeak -v en -f /home/pi/book.txt -w /home/pi/text.wav &");
reset(); //to reset the text received flag to 0
system("xmms2 play /home/pi/text.wav &");
}
if(readcmd2() == 2)
{
system("pdftotext -layout /home/pi/upload/*.pdf /home/pi/converted.txt &");
delay(300);
system("espeak -v en -f /home/pi/converted.txt -w /home/pi/book.wav &");
delay(500);
system("sudo rm /home/pi/converted.txt");
system("sudo rm /home/pi/upload/*.pdf");
system("xmm2 play /home/pi/book.wav &");
}
}
void main(){
while(1){
checktxt();
}
}