Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C++ C C# ASP.NET Java
Hi..,
 
I am undergoing for project on Developing a Voice Enabled Browser,
so how do I develop a basic browser ?
 
Which platform would be best to develop a browser ?
 
A basic idea/structure of a browser development would be highly appreciably.
 
Here the link to my Project Scenario Documentation,
 
Project Scenario Documentation[^]
 
Thanking you
Posted 6-Oct-12 8:42am
Edited 6-Oct-12 21:17pm
v3
Comments
Zoltán Zörgő at 6-Oct-12 15:46pm
   
I would not start with a browser from the scratch, is it an option for you to add a wrapper around an existing engine? Most of the browsers are just core components with their own default wrapper - but you can build your own the same way.
Aritra Mondal at 7-Oct-12 1:36am
   
Hi Zoltán Zörgő,
well there is an option where I can start work on existing browser and develop a new one from it i.e. I can add wrapper around an existing engine...
so if could help me in getting an existing engine where I can start my work
 
Thanking you
enhzflep at 6-Oct-12 16:57pm
   
Developing a browser is far from a trivial task, as others have alluded to.
I also note that current versions of Windows, MacOS & Linux support voice commands natively or have free programs available that provide this support. With this in mind, pretty much everything becomes voice-enabled, there's no longer the same kind of requirement that an app that's voice controlled be specially written to account for this functionality. Much like none of my games had any idea that I would then plug an RC transmitter into the Pc to use as a joystick for more accurate flight-training in sims. But there's the app, then there's a layer that accepts input, then there's me. By re-writing the layer that accepts input, we can provide and receive input to/from a device that wasn't around at the time the app was built.
 
I certainly do NOT wish to discourage you, merely to provide you with information that would permit informed decisions to be made.
 

In closing, I've seen a number of projects that record speech from the user, pre-process and encode it (normalization etc, convert to ogg) before sending it to google's servers.
The response text then indicates the text that the recognition engines believes your speech corresponds to, as well as in indicator of the engines certainty that the conversion is accurate.
Leveraging such a service would allow you to perform voice control on any device that (a) can record audio (b) allows programming (c) has net connectivity. I.e phones, tablets, desktops, some smart TVs etc, etc.
 
Happy programming!
Aritra Mondal at 7-Oct-12 2:06am
   
Dear enhzflep Sir/Madam,
As others I do alluded to that developing a browser from scratch is by far a trivial task.But I have been assigned with a project of Developing an Voice Enabled Web browser so without any issues I have to deliver...
Now my first target is to develop a basic browser and then continue with next part...It would be highly appreciably with your experiences if you could provide me a link where I can start my work...I am also sharing my project scenario documentation for your references...
Here the link for docs...
Project Documentation[^]
enhzflep at 7-Oct-12 3:06am
   
I'd do as Espen suggested, and modify the code-base for FF or Chrome such that it performed the required tasks. I'd go for Chrome myself.
 
Then, you get the WebKit layout engine and the V8 Javascript engines included and already being leveraged. It seems from the specs, that just adding all of the stated functionality to a pre-existing browsers is in itself, no mean feat.
(whomever wrote them should be punished for crimes against the English language, too)
 
After a quick check, you need about 10GB of HDD space in order to build Chromium, or about 1.6GB if you'd just like to peek inside - an indicator of the vast quantity of data that needs processing in order to compile.
 
Not sure of the available TTS engines for linux.
 

 
But all that aside - the quickest, easiest way for _me_ to do it would to to wrap the Internet Explorer COM object and provide my own decoration around that window - just like Zoltán suggested.
 
You just have to create a new instance of a COM object with the name "internetExplorer.Application"
 
If you have a look at the examples for Win32xx, (here: https://sourceforge.net/projects/win32-framework) You can see that one of the examples does just this - wraps IE. It supports VS 2003, 2005, 2008, 2010 and MinGW (code::blocks project file supplied)
enhzflep at 7-Oct-12 2:41am
   
I'm happy with neither :p (either enhzflep or Simon is just fine)
 
Having a look at your docs, I a couple of items that seize my attention. These being:
 
1. Other important issues: 2-4 students
2. Tools to be used:
3. Preferred OS: Linux
 
I was going to suggest wrapping InternetExplorer's COM object with a VB / C# / C++ app, but then realized it's unlikely to be favoured due to the OS needed.
I then looked at the tools/techs to be used and realized I've not heard of a whole bunch of them- combined with the hint that it's a college assignment, I supposed that these tools have probably already been covered.
 
Which got me thinking about doing the raw socket IO yourself, though this seems like running a race through broken glass on your knees. Especially since this part is kindergarten-fodder compared to implementing a layout engine and adding javascript support.
 
As Espen suggested, you may wish to look at couple of open source browsers.
 
I repeat this in preface to saying, a possible approach (whose value I've not evaluated) would be to 'glue together' the components that make up a typical browser. This is an approach not that dissimilar to browsers availble.
 
You could use the webKit or Gecko layout engines, the V8 javascript engine and a TCP library.
 
Then of course, you have to move on to the audio input/output.
 
I'm uncomfortable with the specs doc as it stands. There are missing words, poor grammar and apparent contradictions.
 
Take for example, the fact it states Linux to be the preferred OS, while at the same time listing in User interface priorities option C - "Browser testing and support for IE, NN, Mozila, and Firefox."
 
Or how about 24x7 accessability - a program is a program is a program. They will run any time that you care to try. It would take extra code to restrict the app in such a way that it would NOT run 24x7.
 
That said, it looks like the 2-4 of you have quite a lot on your plate.
Good luck!
Aritra Mondal at 7-Oct-12 14:56pm
   
Dear Simon,
 
Thank you very much for sharing those valuable information.I'm getting some idea about building a browser...but as you said we've got a mountain to climb..!!
 
I'm in final final year of my college and this project is going to be my final year project and I must tell you this scenario is a part of INTERNATIONAL PROJECT CONTEST i.e. IBM The Great Mind Challenge Contest 2012
IBM TGMC 2012.
We are also a participant of this contest and this scenario is our project scenario...(hope we can complete the project successfully)
 
There are still few things i need to get clarify..:
 
a)The tools mentioned are probably all are products of IBM except I think Eclipse..
 
b)Though it is mentioned that linux is the preferred OS..but still we can develop in Windows as of now...
 
c)You mentioned some open source browser...& I do followed the link provided by Espen but as a matter fact there aren't any source code available or similar type documents where I can start my work...Actually, I'm desperate to get a launched pad to start my work...
 
That its for now.....!!!!
Thank you again.
enhzflep at 7-Oct-12 20:40pm
   
Ahh, you just have to know where to look or what to type into google. "Download chromium source" into google gave me this link: Dev.Chromium.Org source downloads
 
"Download FF source" into google gave me this link:
Get Mozilla source-code
 
And of course the one I linked to earlier - Win32++ (which has an article here at CP) - the compiled demos are a total of just 388kb, entire source archive is under 3MB!! Win32++
 
Ciao.
Aritra Mondal at 8-Oct-12 2:08am
   
Thank you Simon...!!!
 
It helped a lot...& learning many new things..
I'm loving it...
enhzflep at 8-Oct-12 2:14am
   
Brilliant Aritra, you're most welcome. :)
 
That's the name of the game - learning. (and sharing)
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Have a look at Chromium[^] or Firefox[^]
 
I think your best hope is to add any potential features to an existing browser, as writing one from scratch is a Herculean task.
 
Best regards
Espen Harlinn
  Permalink  
Comments
Aritra Mondal at 7-Oct-12 2:11am
   
Dear Espen Harlinn,
 
If you could provide me with link for an existing browser or a template , I mean a link where I can start my work on it...
 
With Regards
Sergey Alexandrovich Kryukov at 19-Nov-12 18:47pm
   
How come those are not the links?
--SA
Sergey Alexandrovich Kryukov at 19-Nov-12 18:47pm
   
Adequate response. My 5, see my comment above :-).
--SA
Espen Harlinn at 19-Nov-12 18:49pm
   
Thank you, Sergey :-D
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

  Permalink  
v2
Comments
Aritra Mondal at 7-Oct-12 2:08am
   
Thank you I will look onto it..!!!
 
with reagards
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 3

[]
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 BillWoodruff 300
1 Mathew Soji 274
2 Afzaal Ahmad Zeeshan 268
3 DamithSL 225
4 Sergey Alexandrovich Kryukov 205
0 OriginalGriff 6,249
1 Sergey Alexandrovich Kryukov 5,853
2 DamithSL 5,183
3 Manas Bhardwaj 4,673
4 Maciej Los 3,865


Advertise | Privacy | Mobile
Web01 | 2.8.1411019.1 | Last Updated 7 Oct 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100