A really short example
\documentclass{book}
\usepackage{amsmath}
\renewcommand{\frac}[2]{#1\; \text{over}\; #2}%
\begin{document}
\begin{math}
\frac{1}{3}
\end{math}
\end{document}
But I would rather use a new command instead overriding \frac, so I provide another version:
\documentclass{book}
\newcommand*{\readoutfrac}[2]{#1\; \textbf{over}\; #2}%
%%%%%
% Uncomment this if you want to have \frac behave like \literalfrac
% \renewcommand*{\frac}[2]{\readoutfrac{#1}{#2}}%
\begin{document}
\begin{math}
\frac{1}{3} = \readoutfrac{1}{3}
\end{math}
\end{document}
Please remove the \textbf{} at will, I just introduced it to make the word over as an eye-catcher ;-)

Another Version
I introduced some kind of a switch, which can be used any time to switch between traditional output of \frac and its literal version.
\documentclass{book}
\usepackage{etoolbox}
\newbool{UseForBlindVersion}
\setbool{UseForBlindVersion}{false}
\newcommand*{\EnableForBlindVersion}{%
\setbool{UseForBlindVersion}{true}
}%
\newcommand*{\DisableForBlindVersion}{%
\setbool{UseForBlindVersion}{false}
}%
\newcommand*{\readoutfrac}[2]{#1\; \textbf{over}\; #2}%
\let\LaTeXStandardFracCmd\frac%
\renewcommand{\frac}[2]{%
\ifboolexpr{bool{UseForBlindVersion}}{%
\readoutfrac{#1}{#2}%
}{%
\LaTeXStandardFracCmd{#1}{#2}%
}%
}%
\begin{document}
\DisableForBlindVersion% Normal \frac
\[
\frac{2}{6} = \frac{1}{3}
\]
\EnableForBlindVersion% Literal \frac
However,
\[
\frac{1}{4} \neq \frac{1}{3},
\]
and on the other hand
\DisableForBlindVersion
\[
\frac{1}{12} = \frac{1}{3} - \frac{1}{4}
\]
\end{document}

EVEN ANOTHER VERSION WITH PARENTHESIS
I added a code which automatically adds parenthesis to the fraction (unless switched off by flag command or as an option to \frac command. The code does not analyze whether the parentheses is mathematically necessary or not!
\documentclass{book}
\usepackage{etoolbox}
\usepackage{amsmath}
\usepackage{xkeyval}
% Some helper commands
\newrobustcmd{\ProvideBool}[2][true]{%
\providebool{#2}%
\setbool{#2}{#1}
\long\csgdef{Enable#2}{%
\booltrue{#2}%
}%
\long\csgdef{Disable#2}{%
\boolfalse{#2}%
}%
}%
\makeatletter
\newrobustcmd{\GenerateBooleanKey}[5][false]{% This solution is from Joseph Wright,
% https://tex.stackexchange.com/questions/152012/generate-xkeyval-boolean-keys-on-the-fly
\begingroup
\edef\x{\endgroup
\noexpand\define@boolkey{#2}{#3}[#1]{%
\expandafter\noexpand\csname ifKV@#2@#3\endcsname%
\noexpand #4% Do something if true
\noexpand\else%
\noexpand #5% % Do something different if false
\noexpand\fi%
}% End of \define@boolkey
}% End of defintion of \x
\x
}% End of \providecommand
\newrobustcmd{\GenerateEnableDisableBooleanKey}[3][false]{%
\ProvideBool{#3}%
\GenerateBooleanKey[#1]{#2}{#3}{%
\csname Enable#3\endcsname%
}{\csname Disable#3\endcsname}%
}%
\makeatother
\ProvideBool{ForBlindVersion}
\GenerateEnableDisableBooleanKey[false]{ReadOutExpressions}{AutomaticParentheses}
\GenerateEnableDisableBooleanKey[false]{ReadOutExpressions}{AutomaticNominatorParentheses}
\GenerateEnableDisableBooleanKey[false]{ReadOutExpressions}{AutomaticDenominatorParentheses}
\EnableForBlindVersion
\ifboolexpr{bool{ForBlindVersion}}{%
\presetkeys{ReadOutExpressions}{AutomaticNominatorParentheses=true,
AutomaticDenominatorParentheses=true,
AutomaticParentheses=true}{}%
}{
\presetkeys{ReadOutExpressions}{AutomaticNominatorParentheses=false,
AutomaticDenominatorParentheses=false,
AutomaticParentheses=false}{}%
}%
% Readout commands... (well, readout in the sense of read out by other software )
\newcommand*{\readoutfrac}[2]{#1\; \textbf{over}\; #2}%
\newcommand*{\readoutneq}{\;\textbf{is not equal to}\;}%
\let\LaTeXStandardFracCmd\frac%
\renewcommand{\frac}[3][]{%
\setkeys{ReadOutExpressions}{#1}
\ifboolexpr{bool{AutomaticParentheses}}{%
\ifboolexpr{not(bool{AutomaticDenominatorParentheses})}{%
\DisableAutomaticDenominatorParentheses}{\EnableAutomaticDenominatorParentheses}%
\ifboolexpr{not(bool{AutomaticNominatorParentheses})}{%
\DisableAutomaticNominatorParentheses}{\EnableAutomaticNominatorParentheses}%
}{%
}%
\ifboolexpr{bool{AutomaticNominatorParentheses}}{
\edef\Nominator{\left({#2}\right)}%
}{
\edef\Nominator{#2}%
}
\ifboolexpr{bool{AutomaticDenominatorParentheses}}{
\edef\Denominator{\left({#3}\right)}%
}{
\edef\Denominator{#3}%
}
%
\ifboolexpr{bool{ForBlindVersion}}{%
\readoutfrac{\Nominator}{\Denominator}%
}{%
\LaTeXStandardFracCmd{\Nominator}{\Denominator}%
}%
\DisableAutomaticParentheses%
}%
\let\LaTeXStandardNeqCmd\neq%
\renewcommand{\neq}{%
\ifboolexpr{bool{ForBlindVersion}}{%
\readoutneq%
}{%
\LaTeXStandardNeqCmd%
}%
}%
\begin{document}
\DisableForBlindVersion%
\[
\frac{2}{6} = \frac{1}{3}
\]
\EnableForBlindVersion%
However,
\[
\frac{1}{4} \neq \frac{1}{3},
\]
\EnableForBlindVersion
However,
\[
\frac[AutomaticDenominatorParentheses=false]{1+x}{3} \neq 1 + \frac{x}{3},
\]
and on the other hand
\DisableForBlindVersion
\[
\frac{1}{12} = \frac{1}{3} - \frac{1}{4}
\]
\end{document}
I used some code from a former question of mine, which can be found here: Generate xkeyval boolean keys 'on the fly', the solution to that question came from J. Wright.

Note, this is just a proposal, not a finally working package idea -- I have no idea how a reading software will do as expected at all. Think of it as a playground, a sandbox...
\frac,\sqrtand others might be a problem. If you just replace as indicated,\frac{1+x}{3}and1 + \frac{1}{3}will turn out the same. It would be simple to always insert()but probably awkward to read. To analyze the arguments to see if parens are needed sounds complicated. Have you spoken to the blind readers about what they expect in such cases? – pst Apr 15 '14 at 10:05\frac{1+x}{3}, for example in a mathematics lesson. Perhaps 'left bracket 1 plus x right bracket over 3'. Adding '()' might be tedious but would clarify a fraction. I admit, however, that analyzing onLaTeXlevel will be very difficult – Apr 17 '14 at 14:34