cmudict-to-sqlite
Version:
A utility for parsing the CMU Pronouncing Dictionary into an sqlite database using Node.js. Also included is a helper class for looking up information in the database and manipulating it.
413 lines (280 loc) • 9.41 kB
HTML
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - _global_</title>
<style type="text/css">
/* default.css */
body
{
font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
width: 800px;
}
.header
{
clear: both;
background-color: #ccc;
padding: 8px;
}
h1
{
font-size: 150%;
font-weight: bold;
padding: 0;
margin: 1em 0 0 .3em;
}
hr
{
border: none 0;
border-top: 1px solid #7F8FB1;
height: 1px;
}
pre.code
{
display: block;
padding: 8px;
border: 1px dashed #ccc;
}
#index
{
margin-top: 24px;
float: left;
width: 160px;
position: absolute;
left: 8px;
background-color: #F3F3F3;
padding: 8px;
}
#content
{
margin-left: 190px;
width: 600px;
}
.classList
{
list-style-type: none;
padding: 0;
margin: 0 0 0 8px;
font-family: arial, sans-serif;
font-size: 1em;
overflow: auto;
}
.classList li
{
padding: 0;
margin: 0 0 8px 0;
}
.summaryTable { width: 100%; }
h1.classTitle
{
font-size:170%;
line-height:130%;
}
h2 { font-size: 110%; }
caption, div.sectionTitle
{
background-color: #7F8FB1;
color: #fff;
font-size:130%;
text-align: left;
padding: 2px 6px 2px 6px;
border: 1px #7F8FB1 solid;
}
div.sectionTitle { margin-bottom: 8px; }
.summaryTable thead { display: none; }
.summaryTable td
{
vertical-align: top;
padding: 4px;
border-bottom: 1px #7F8FB1 solid;
border-right: 1px #7F8FB1 solid;
}
/*col#summaryAttributes {}*/
.summaryTable td.attributes
{
border-left: 1px #7F8FB1 solid;
width: 140px;
text-align: right;
}
td.attributes, .fixedFont
{
line-height: 15px;
color: #002EBE;
font-family: "Courier New",Courier,monospace;
font-size: 13px;
}
.summaryTable td.nameDescription
{
text-align: left;
font-size: 13px;
line-height: 15px;
}
.summaryTable td.nameDescription, .description
{
line-height: 15px;
padding: 4px;
padding-left: 4px;
}
.summaryTable { margin-bottom: 8px; }
ul.inheritsList
{
list-style: square;
margin-left: 20px;
padding-left: 0;
}
.detailList {
margin-left: 20px;
line-height: 15px;
}
.detailList dt { margin-left: 20px; }
.detailList .heading
{
font-weight: bold;
padding-bottom: 6px;
margin-left: 0;
}
.light, td.attributes, .light a:link, .light a:visited
{
color: #777;
font-style: italic;
}
.fineprint
{
text-align: right;
font-size: 10px;
}
</style>
</head>
<body>
<!-- ============================== header ================================= -->
<!-- begin static/header.html -->
<div id="header">
</div>
<!-- end static/header.html -->
<!-- ============================== classes index ============================ -->
<div id="index">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a>
| <a href="../files.html">File Index</a></div>
<hr />
<h2>Classes</h2>
<ul class="classList">
<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
<li><a href="../symbols/CmudictDb.html">CmudictDb</a></li>
</ul>
<hr />
<!-- end publish.classesIndex -->
</div>
<div id="content">
<!-- ============================== class title ============================ -->
<h1 class="classTitle">
Built-In Namespace _global_
</h1>
<!-- ============================== class summary ========================== -->
<p class="description">
</p>
<!-- ============================== constructor summary ==================== -->
<!-- ============================== properties summary ===================== -->
<!-- ============================== methods summary ======================== -->
<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class _global_.">
<caption>Method Summary</caption>
<thead>
<tr>
<th scope="col">Method Attributes</th>
<th scope="col">Method Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes"> </td>
<td class="nameDescription">
<div class="fixedFont"><b><a href="../symbols/_global_.html#cmudictToArray">cmudictToArray</a></b>(fileName)
</div>
<div class="description">Reads the cmudict file into a JavaScript array of arrays.</div>
</td>
</tr>
<tr>
<td class="attributes"> </td>
<td class="nameDescription">
<div class="fixedFont"><b><a href="../symbols/_global_.html#cmudictToSqliteDb">cmudictToSqliteDb</a></b>(fileName)
</div>
<div class="description">Parses the cmudict file into an SQLite database.</div>
</td>
</tr>
</tbody>
</table>
<!-- ============================== events summary ======================== -->
<!-- ============================== constructor details ==================== -->
<!-- ============================== field details ========================== -->
<!-- ============================== method details ========================= -->
<div class="sectionTitle">
Method Detail
</div>
<a name="cmudictToArray"> </a>
<div class="fixedFont">
<span class="light">{Array}</span>
<b>cmudictToArray</b>(fileName)
</div>
<div class="description">
Reads the cmudict file into a JavaScript array of arrays.
<br />
<i>Defined in: </i> <src/cmudict-to-sqlite.js>.
<br /><i>Author: </i><a href="mailto:matthewkastor@gmail.com">Matthew Kastor</a>.
</div>
<pre class="code">// Reading the CMU Pronouncing Dictionary from the flat file `cmudict` into
// a JavaScript array:
var cmu = require('cmudict-to-sqlite');
var fileName = 'cmudict.0.7a';
var cmudict = cmu.cmudictToArray(fileName);
// the array will be huge and on my machine it takes longer to display it to
// the console than it does to parse the file so, let's just display the first
// thirty records
var count = 30;
while (count > 0) {
console.log(cmudict[count]);
count -= 1;
}</pre>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{String}</span> <b>fileName</b>
</dt>
<dd>The name and location of the cmudict to parse.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{Array}</span> An array of arrays. Each element in the
array is an array with item 0 being the word and item 1 being the ARPAbet
code. The array will also have a license property which contains the license
header from the given cmudict file.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Requires:</dt>
<dd>fs</dd>
</dl>
<hr />
<a name="cmudictToSqliteDb"> </a>
<div class="fixedFont">
<b>cmudictToSqliteDb</b>(fileName)
</div>
<div class="description">
Parses the cmudict file into an SQLite database.
<br />
<i>Defined in: </i> <src/cmudict-to-sqlite.js>.
<br /><i>Author: </i><a href="mailto:matthewkastor@gmail.com">Matthew Kastor</a>.
</div>
<pre class="code">// Converting the CMU Pronouncing Dictionary from the flat file `cmudict` into
// an sqlite database:
var cmu = require('cmudict-to-sqlite');
var fileName = 'cmudict.0.7a';
cmu.cmudictToSqliteDb(fileName);</pre>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{String}</span> <b>fileName</b>
</dt>
<dd>The name and location of the cmudict to parse.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Requires:</dt>
<dd>sqlite3</dd>
<dd>cmudictToArray</dd>
</dl>
<dl class="detailList">
<dt class="heading">See:</dt>
<dd><a href="http://www.speech.cs.cmu.edu/cgi-bin/cmudict">
Carnegie Mellon University's information and download links for cmudict</a></dd>
<dd><a href="http://en.wikipedia.org/wiki/CMU_Pronouncing_Dictionary">
Wikipedia's article on the CMU Pronouncing Dictionary</a></dd>
<dd><a href="http://en.wikipedia.org/wiki/Arpabet">
Wikipedia's ARPAbet article</a></dd>
</dl>
<!-- ============================== event details ========================= -->
<hr />
</div>
<!-- ============================== footer ================================= -->
<div class="fineprint" style="clear:both">
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Thu Nov 17 2022 17:29:49 GMT-0500 (Eastern Standard Time)
</div>
</body>
</html>