zachleigh/pronounce-php

为超过13万个单词创建英语发音字符串。英式单词将使用连字符分隔。

0.8 2015-06-28 02:18 UTC

This package is auto-updated.

Last update: 2024-09-22 13:20:27 UTC


README

Build Status Latest Stable Version Latest Unstable Version License

- 使用卡内基梅隆大学发音词典(CMUdict)文件将单词转换为发音字符串。目前转换为国际音标(IPA)和易于阅读的拼写近似。
- 英式单词使用连字符分隔。希望很快会有IPA和拼写近似的分隔。 - 输出到控制台、文件或数据库

内容

安装
用法

安装

要求
PHP 5.3.9或更高版本

Linux用户可以在他们的发行版仓库中找到PHP版本。对于其他操作系统,请访问php安装指南获取说明。

composer

有关安装说明,请参阅composer文档

安装

如果满足要求,您可以通过以下两种方式安装此软件包。

下载

推荐。从这里下载,并运行

composer install
通过composer
composer require zachleigh/pronounce-php

如果您通过composer安装,程序将在vendor/zachleigh/pronounce-php中

用法

##### 通用语法概述

pronounce-php command [argument]  [options]

命令

all

将包含arpabet、连字符、IPA和拼写近似字符串的整个CMUdict文件输出到文件或数据库。默认情况下,写入名为'output.txt'的文件。

语法概述
pronounce-php all [options]
选项
--destination [-d]

设置输出目标。默认情况下,输出到名为'output.txt'的文件。如果选择文件(默认),字段将通过空格包围的斜杠(/)分隔。
可用目标:[文件、数据库]

pronounce-php all --destination=database
--fields [-f]

设置要显示的输出字段。字段必须以逗号分隔的列表形式存在。默认启用所有字段。
可用字段:[单词、连字符单词、arpabet、ipa、拼写]

pronounce-php all --fields=word,arpabet,ipa
--file [-o]

如果选择'文件'作为输出目标,则可以使用'file'选项设置要写入的文件名。默认文件名为'output.txt',并写入pronounce-php目录。

pronounce-php all --destination=file --file=my_file.txt
--multiple [-m]

对于CMUdict文件中的某些单词,存在多个发音条目。该文件通过在每个附加条目后附加括号中的数字来处理这些条目。

ACERO  AH0 S EH1 R OW0
ACERO(1)  AH0 S Y EH1 R OW0
ACERO(2)  AH0 TH EH1 R OW0

'multiple'命令设置处理这些多个条目的行为。默认情况下,'multiple'设置为'none',即输出条目与CMUdict文件中显示的条目完全相同。'repeat'输出不带括号或数字的条目。

pronounce-php lookup words_to_lookup --multiple=repeat
--symbol [-s]

设置用于连字符的字符。默认值为连字符(-)。注意:如果写入文件,请记住文件中的项将通过斜杠(/)分隔,因此将连字符分隔符设置为斜杠将使文件的读取变得复杂。

pronounce-php all --symbol=.
示例

基本用法

./pronounce-php all


Lines in file will look like this:
accepting / ac-cept-ing / AE0 K S EH1 P T IH0 NG / æksɛ'ptɪŋ / akse'pting /

使用'fields'选项设置所需输出字段。

./pronounce-php all --fields=word,ipa,spelling


Lines in file will look like this:
accepting / æksɛ'ptɪŋ / akse'pting /

使用'symbol'选项更改分隔连字符单词的符号。

./pronounce-php all --symbol=.


Lines in file will look like this:
accepting / ac.cept.ing / AE0 K S EH1 P T IH0 NG / æksɛ'ptɪŋ / akse'pting /

使用“destination”选项设置输出目标。只能选择一个目标。如果“destination”设置为“file”(默认值),则使用“file”选项指定要写入的文件。

./pronounce-php all --file=all.txt


Successfully wrote to all.txt

如果“destination”设置为“database”,将从.env文件读取数据库凭据,并从config.php读取配置。

./pronouncephp all --destination=database


Successfully wrote to database

hyphenate

将单词或多个单词连字符化。请注意,此功能大部分准确,但可能存在一些错误。如果您发现错误,请报告给我,以便我将单词添加到异常列表中。

语法概述
pronounce-php hyphenate words_to_hyphenate [options]
选项
--destination [-d]

设置输出目标。默认情况下,将表格输出到控制台。如果选择文件,字段将通过空格包围的前斜杠(/)分隔。
可用的目标:[table, string, file, database]

pronounce-php hyphenate words_to_hyphenate --destination=file
--file [-o]

如果选择'文件'作为输出目标,则可以使用'file'选项设置要写入的文件名。默认文件名为'output.txt',并写入pronounce-php目录。

pronounce-php hyphenate words_to_hyphenate --destination=file --file=my_file.txt
--symbol [-s]

设置用于连字符的字符。默认值为连字符(-)。注意:如果写入文件,请记住文件中的项将通过斜杠(/)分隔,因此将连字符分隔符设置为斜杠将使文件的读取变得复杂。

pronounce-php hyphenate words_to_hyphenate --symbol=/
示例

基本用法

./pronounce-php hyphenate hello


+-------+-----------------+
| word  | hyphenated_word |
+-------+-----------------+
| hello | hel-lo          |
+-------+-----------------+

也可以提供以逗号分隔的单词列表。

./pronounce-php hyphenate basket,curtain,hyphenate


+-----------+-----------------+
| word      | hyphenated_word |
+-----------+-----------------+
| basket    | bas-ket         |
| curtain   | cur-tain        |
| hyphenate | hy-phen-ate     |
+-----------+-----------------+

使用“symbol”选项更改分隔单词的符号。

./pronounce-php hyphenate machine --symbol=.


+---------+-----------------+
| word    | hyphenated_word |
+---------+-----------------+
| machine | ma.chine        |
+---------+-----------------+

使用“destination”选项设置输出目标。只能选择一个目标。将“destination”设置为“string”将产生字符串而不是表格。

./pronounce-php hyphenate flower,mountain --destination=string


word: flower hyphenated word: flower 
word: mountain hyphenated_word: moun-tain 

将“destination”设置为“file”将输出写入文件。默认文件为“output.txt”。

./pronounce-php hyphenate cupcakes,headphones --destination=file


Successfully wrote to output.txt

output.txt

cupcakes / cup-cakes / 
headphones / head-phones / 

如果“destination”设置为“file”,则使用“file”选项指定要写入的文件。

./pronounce-php hyphenate reading,eating,shopping --destination=file --file=hyphen.txt


Successfully wrote to hyphen.txt

hyphen.txt

reading / read-ing / 
eating / eat-ing / 
shopping / shop-ping / 

如果“destination”设置为“database”,将从.env文件读取数据库凭据,并从config.php读取配置。

./pronouncephp hyphenate goodbye --destination=database


Successfully wrote to database

lookup

查找单词并输出Arpabet、IPA和拼写近似发音字符串。查找命令需要一个参数:要查找的单词或单词。

语法概述
pronounce-php lookup words_to_lookup [options]
选项
--destination [-d]

设置输出目标。默认情况下,将表格输出到控制台。如果选择“file”,则字段将通过空格包围的前斜杠(/)分隔。
可用的目标:[table, string, file, database]

pronounce-php lookup words_to_lookup --destination=string
--fields [-f]

设置要显示的输出字段。字段必须以逗号分隔的列表形式存在。默认启用所有字段。
可用的字段:[word, arpabet, ipa, spelling]

pronounce-php lookup words_to_lookup --fields=word,arpabet,ipa,spelling
--file [-o]

如果选择'文件'作为输出目标,则可以使用'file'选项设置要写入的文件名。默认文件名为'output.txt',并写入pronounce-php目录。

pronounce-php lookup words_to_lookup --destination=file --file=my_file.txt
--hyphenate [-y]

如果提供了“hyphenate”标志,则适用字段将被连字符化。目前,只能连字符化“word”字段。

pronounce-php lookup words_to_lookup --hyphenate
--multiple [-m]

对于CMUdict文件中的某些单词,存在多个发音条目。该文件通过在每个附加条目后附加括号中的数字来处理这些条目。

ACERO  AH0 S EH1 R OW0
ACERO(1)  AH0 S Y EH1 R OW0
ACERO(2)  AH0 TH EH1 R OW0

'multiple'命令设置处理这些多个条目的行为。默认情况下,'multiple'设置为'none',即输出条目与CMUdict文件中显示的条目完全相同。'repeat'输出不带括号或数字的条目。

pronounce-php lookup words_to_lookup --multiple=repeat
--symbol [-s]

设置用于连字符的字符。默认值为连字符(-)。注意:如果写入文件,请记住文件中的项将通过斜杠(/)分隔,因此将连字符分隔符设置为斜杠将使文件的读取变得复杂。

pronounce-php lookup words_to_lookup --symbol=_
示例

基本用法

./pronounce-php lookup hello


+-------+--------------+--------+----------+
| word  | arpabet      | ipa    | spelling |
+-------+--------------+--------+----------+
| hello | HH AH0 L OW1 | hʌɫoʊ' | huhloh'  |
+-------+--------------+--------+----------+

也可以提供以逗号分隔的单词列表。请注意,单词将以字母顺序返回。

./pronounce-php lookup elephant,zebra,giraffe


+----------+---------------------+----------+------------+
| word     | arpabet             | ipa      | spelling   |
+----------+---------------------+----------+------------+
| elephant | EH1 L AH0 F AH0 N T | ɛ'ɫʌfʌnt | e'luhfuhnt |
| giraffe  | JH ER0 AE1 F        | dʒɝæ'f   | jura'f     |
| zebra    | Z IY1 B R AH0       | zi'brʌ   | zee'bruh   |
+----------+---------------------+----------+------------+

使用“hyphenate”标志连字符化“word”字段。

./pronounce-php lookup money,coffee,schedule --hyphenate


+-----------+------------------+----------+----------+
| word      | arpabet          | ipa      | spelling |
+-----------+------------------+----------+----------+
| cof-fee   | K AA1 F IY0      | kɑ'fi    | ko'fee   |
| mon-ey    | M AH1 N IY0      | mʌ'ni    | muh'nee  |
| sched-ule | S K EH1 JH UH0 L | skɛ'dʒʊɫ | ske'juul |
+-----------+------------------+----------+----------+

使用“symbol”选项设置用于连字符化的字符。

./pronounce-php lookup monkey,furry --hyphenate --symbol=~


+---------+----------------+--------+-----------+
| word    | arpabet        | ipa    | spelling  |
+---------+----------------+--------+-----------+
| fur~ry  | F ER1 IY0      | fɝ'i   | fur'ee    |
| mon~key | M AH1 NG K IY0 | mʌ'ŋki | muh'ngkee |
+---------+----------------+--------+-----------+

使用“fields”选项设置所需的输出字段。字段将按给定顺序显示。

./pronounce-php lookup blue,red,green --fields=word,ipa


+-------+-------+
| word  | ipa   |
+-------+-------+
| blue  | bɫu'  |
| green | gri'n |
| red   | rɛ'd  |
+-------+-------+

使用“destination”选项设置输出目标。只能选择一个目标。
将“destination”设置为“string”将产生字符串而不是表格。

./pronounce-php lookup desk,chair,pencil --destination=string


word: chair arpabet: CH EH1 R ipa: tʃɛ'r spelling: che'r 
word: desk arpabet: D EH1 S K ipa: dɛ'sk spelling: de'sk 
word: pencil arpabet: P EH1 N S AH0 L ipa: pɛ'nsʌɫ spelling: pe'nsuhl 

将“destination”设置为“file”将输出写入文件。默认文件为“output.txt”。

./pronounce-php lookup guitar --destination=file


Successfully wrote to output.txt

output.txt

guitar / G IH0 T AA1 R / gɪtɑ'r / gito'r /

如果“destination”设置为“file”,则使用“file”选项指定要写入的文件。

./pronounce-php lookup night,day,noon --destination=file --file=words.txt


Successfully wrote to words.txt

words.txt

day / D EY1 / deɪ' / dey' / 
night / N AY1 T / naɪ't / nahy't / 
noon / N UW1 N / nu'n / noo'n /

如果“destination”设置为“database”,将从.env文件读取数据库凭据,并从config.php读取配置。

./pronouncephp lookup goodbye --destination=database


Successfully wrote to database

数据库使用

要求

如果您希望使用此程序获得的信息填充数据库,则必须确保您的数据库满足以下要求

  • 表必须有一个自增的“id”列
  • 列名必须与预期的字段名称完全匹配。
    • 所有命令字段名称:“word”,“hyphenated_word”,“arpabet”,“ipa”,“spelling”
    • 连字符化命令字段名称:“word”,“hyphenated_word”
    • 查找命令字段名称:“word”,“arpabet”,“ipa”,“spelling”

使用“field”选项设置要插入到数据库中的字段。

设置

首先,将 pronounce-php 根目录中的 .env.example 文件复制到一个名为 .env 的新文件。在文本编辑器中打开 .env 文件,并输入相关的数据库信息。

接下来,在文本编辑器中打开 config.php。在“database”字段中,输入您正在使用的数据库类型。目前,仅支持Mysql(有关其他数据库类型的详细信息,请参阅下文)。如果您愿意,可以在“connections”字段中更改字符集,但默认的“utf8”应该能满足大多数人。这就完成了。文件中的其他信息来自上一步中设置的 .env 文件。

其他数据库类型

数据库连接使用可轻松更换的PHP PDO驱动程序。目前,PDO支持12种数据库类型。有关更多信息,请查看驱动程序列表。如果您希望为这些数据库类型之一创建适配器,必须遵循适配器命名规则。

  • Cuprid: CupridDatabase
  • FreeTDS / Microsoft SQL Server / Sybase: DblibDatabase
  • Firebird: FirebirdDatabase
  • IBM DB2: IbmDatabase
  • IBM Informix动态服务器: InformixDatabase
  • MySQL: MysqlDatabase
  • Oracle调用接口: OciDatabase
  • ODBC v3 (IBM DB2, unixODBC和win32 ODBC): OdbcDatabase
  • PostgreSQL: PgsqlDatabase
  • SQLite 3和SQLite 2: SqliteDatabase
  • Microsoft SQL Server / SQL Azure: SqlsrvDatabase
  • 4d: FourD(对于此类,存在一个类命名规则异常,但尚未经过测试)

适配器类应位于src/Database/Databases/目录下的单独文件中,并必须实现DatabaseInterface接口。如果您创建了新的适配器,请通知我,以便我可以将其包含在主程序中。如果您不知道如何编写新的适配器,请告知我,如果时间允许,我将为您编写。

除了创建适配器之外,您还必须在config.php中的'connections'部分为数据库创建一个新的数组。