建立了索引,就可以使用 SELECT 語句中的 CONTAINS 運算符發(fā)出文本查詢。使用 CONTAINS 可以進行兩種查詢:單詞查詢和ABOUT查詢。

詞查詢示例

詞查詢是對輸入到 CONTAINS 運算符中單引號間的精確單詞或短語的查詢。在以下示例中,我們將查找文本列中包含 oracle 一詞的所有文檔。每行的分值由使用標簽 1 的 SCORE 運算符選定:

SELECT SCORE⑴ title from news WHERE CONTAINS(text,'oracle',1) > 0;

在查詢表達式中,可以使用 AND 和 OR 等文本運算符來獲取不同結(jié)果。還可以將結(jié)構(gòu)性謂詞添加到 WHERE 子句中??梢允褂?count(*)、CTX_QUERY.COUNT_HITS 或 CTX_QUERY.EXPLAIN 來計算查詢的命中 (匹配) 數(shù)目。

ABOUT查詢示例

在所有語言中,ABOUT查詢增加了某查詢所返回的相關(guān)文檔的數(shù)目。在英語中,ABOUT 查詢可以使用索引的主題詞組件,該組件在默認情況下創(chuàng)建。這樣,運算符將根據(jù)查詢的概念返回文檔,而不是僅依據(jù)所指定的精確單詞或短語。例如,以下查詢將查找文本列中關(guān)于主題 politics 的所有文檔,而不是僅包含 politics 一詞的文檔:

SELECT SCORE⑴ title from news WHERE CONTAINS(text,'about(politics)',1) > 0;

Oracle text造價信息

市場價 信息價 詢價
材料名稱 規(guī)格/型號 市場價
(除稅)
工程建議價
(除稅)
行情 品牌 單位 稅率 供應商 報價日期
查詢軟件(資料查詢) 適用于觸摸查詢屏 軟件系統(tǒng) 查看價格 查看價格

13% 上海莫威電子科技有限公司
查詢軟件 查看價格 查看價格

邦德瑞

13% 上海御恒信息科技有限公司
查詢軟件 型號:VER 1.0 查看價格 查看價格

吉祿

13% 深圳市吉祿實業(yè)發(fā)展有限公司
信息查詢 3000*1280/S2區(qū)無,(不含觸摸屏) 查看價格 查看價格

13% 重慶華創(chuàng)標牌有限公司
查詢機17寸 QL-CX-17型號:QL-CX-17;品種:查詢機;質(zhì)保期:1年;產(chǎn)地:北京;技術(shù)參數(shù):17寸液晶顯示器,,ETWO聲波觸摸屏,致銘工控主板,固態(tài)硬盤16G,內(nèi)存1G; 查看價格 查看價格

錢林

13% 北京錢林恒興科技股份有限公司
取車查詢終端(立式) RF-PQ10系統(tǒng):停車引導系統(tǒng)通用配置;產(chǎn)品描述:19寸立式紅外觸摸屏,電子地圖指引;470×250×1450mm;品種:取車查詢終端; 查看價格 查看價格

立方

13% 杭州立方自動化工程有限公司遼寧分公司
反向?qū)ぼ?font color='red'>查詢終端 型號:HS-GLFXCX908,品種:反向?qū)ぼ?font color='red'>查詢終端,產(chǎn)品說明:22'觸摸屏,TCP/IP接口。安裝在樓梯和電梯口 查看價格 查看價格

Hsestone

13% 上海漢石科技股份有限公司安徽辦事處
觸摸查詢軟件 MXCX類型:其他;說明:1Web頁面瀏覽查詢展示功能2軟鍵盤輸入查詢3自動播放背景音樂4瀏覽網(wǎng)站和頁面限制5自動返回程序首頁6定時關(guān)閉計算機7外部程序控制觸摸屏瀏覽器8觸摸屏瀏覽器還有其他更多實用功能; 查看價格 查看價格

曼線

13% 杭州曼線科技有限公司
材料名稱 規(guī)格/型號 除稅
信息價
含稅
信息價
行情 品牌 單位 稅率 地區(qū)/時間
暫無數(shù)據(jù)
材料名稱 規(guī)格/需求量 報價數(shù) 最新報價
(元)
供應商 報價地區(qū) 最新報價時間
Oracle數(shù)據(jù)庫 Oracle 10G|2套 3 查看價格 深圳市威思嘉科技有限公司 廣東  陽江市 2015-06-16
Oracle企業(yè)版 Oracle 11g 企業(yè)版(1CPU,無限用戶)|2套 1 查看價格 上海傾菲電子科技有限公司 全國   2018-05-17
查詢軟件(資料查詢) 適用于觸摸查詢屏 軟件系統(tǒng)|2.0個 1 查看價格 上海莫威電子科技有限公司    2015-08-25
院長查詢系統(tǒng) 1.名稱:院長查詢系統(tǒng)2.功能包含:門診查詢、住院查詢、藥房查詢、藥庫查詢、物資查詢等、|1套 3 查看價格 北京神州視翰科技有限公司 全國   2022-11-03
查詢 支持快捷查詢、全車牌查詢、時間查詢、車位查詢四種方式.|1臺 3 查看價格 成都峰凌科技有限公司    2017-05-24
自助查詢終端 19寸觸摸落地式,車牌查詢、快速查詢、車位查詢、無牌查詢四種查詢功能)|45臺 1 查看價格 深圳市捷順科技實業(yè)股份有限公司 廣東   2019-04-26
查詢 查詢機|17臺 3 查看價格 深圳市寶安區(qū)沙井晶之凌電子商行 廣東  深圳市 2016-10-27
查詢統(tǒng)計應用模塊 Infovision SC-TPC 查詢統(tǒng)計應用|1套 3 查看價格 浙江大華技術(shù)股份有限公司四川辦事處 全國   2020-04-14

文本裝入文本列后,就可以創(chuàng)建Oracle Text索引。文檔以許多不同方案、格式和語言存儲。因此,每個 Oracle Text 索引有許多需要設(shè)置的選項,以針對特定情況配置索引。創(chuàng)建索引時,Oracle Text可使用若干個默認值,但在大多數(shù)情況下要求用戶通過指定首選項來配置索引。

每個索引的許多選項組成功能組,稱為"類&quo

每個類集中體現(xiàn)配置的某一方面,可以認為這些類就是與文檔數(shù)據(jù)庫有關(guān)的一些問題。例如:數(shù)據(jù)存儲、過濾器、詞法分析器、相關(guān)詞表、存儲等。

每個類具有許多預定義的行為,稱之為對象。每個對象是類問題可能具有的答案,并且大多數(shù)對象都包含有屬性。通過屬性來定制對象,從而使對索引的配置更加多變以適應于不同的應用。

⑴存儲(Storage)類

存儲類指定構(gòu)成Oracle Text索引的數(shù)據(jù)庫表和索引的表空間參數(shù)和創(chuàng)建參數(shù)。它僅有一個基本對象:BASIC_STORAGE,其屬性包括:I_Index_Clause、I_Table_Clause、K_Table_Clause、N_Table_Clause、P_Table_Clause、R_Table_Clause。

⑵數(shù)據(jù)存儲(Datastore)類

數(shù)據(jù)存儲:關(guān)于列中存儲文本的位置和其他信息。默認情況下,文本直接存儲到列中,表中的每行都表示一個單獨的完整文檔。其他數(shù)據(jù)存儲位置包括存儲在單獨文件中或以其 URL 標識的 Web 頁上。七個基本對象包括:Default_Datastore、Detail_Datastore、Direct_Datastore、File_Datastore、Multi_Column_Datastore 、URL_Datastore、User_Datastore,。

⑶文檔段組(Section Group)類

文檔段組是用于指定一組文檔段的對象。必須先定義文檔段,然后才能使用索引通過 WITHIN 運算符在文檔段內(nèi)進行查詢。文檔段定義為文檔段組的一部分。包含七個基本對象:AUTO_SECTION_GROUP、BASIC_SECTION_GROUP、HTML_SECTION_GROUP、NEWS_SECTION_GROUP、NULL_SECTION_GROUP、XML_SECTION_GROUP、PATH_SECTION_GROUP。

⑷相關(guān)詞表(Wordlist)類

相關(guān)詞表標識用于索引的詞干和模糊匹配查詢選項的語言,只有一個基本對象BASIC_WORDLIST,其屬性有:Fuzzy_Match、Fuzzy_Numresults、Fuzzy_Score、Stemmer、Substring_Index、Wildcard_Maxterms、Prefix_Index、Prefix_Max_Length、Prefix_Min_Length。

⑸索引集(Index Set)

索引集是一個或多個Oracle 索引 (不是Oracle Text索引) 的集合,用于創(chuàng)建 CTXCAT類型的Oracle Text索引,只有一個基本對象BASIC_INDEX_SET。

⑹詞法分析器(Lexer)類

詞法分析器類標識文本使用的語言,還確定在文本中如何標識標記。默認的詞法分析器是英語或其他西歐語言,用空格、標準標點和非字母數(shù)字字符標識標記,同時禁用大小寫。包含8個基本對象:BASIC_LEXER、CHINESE_LEXER、CHINESE_VGRAM_LEXER、JAPANESE_LEXER、JAPANESE_VGRAM_LEXER、KOREAN_LEXER、KOREAN__MORPH_ LEXER、MULTI_LEXER。

⑺過濾器(Filter)類

過濾器確定如何過濾文本以建立索引??梢允褂眠^濾器對文字處理器處理的文檔、格式化的文檔、純文本和 HTML 文檔建立索引,包括5個基本對象:CHARSET_FILTER、INSO_FILTER INSO、NULL_FILTER、PROCEDURE_FILTER、USER_FILTER。

⑻非索引字表(Stoplist)類

非索引字表類是用以指定一組不編入索引的單詞 (稱為非索引字)。有兩個基本對象:BASIC_STOPLIST (一種語言中的所有非索引字) 、 MULTI_STOPLIST (包含多種語言中的非索引字的多語言非索引字表)。

要實現(xiàn)文本的全文檢索首先必須把正確的文本加載到數(shù)據(jù)庫表中,默認的建立索引行為要求將文檔裝載在文本列中,盡管可以用其它方式 (包括文件系統(tǒng)和 URL 形式)存儲文檔 (在"數(shù)據(jù)存儲"選項進行設(shè)置)。默認情況下,系統(tǒng)應該將文檔裝載在文本列中。文本列可以是VARCHAR2、CLOB、BLOB、CHAR或BFILE。注意,只有在將Oracle7系統(tǒng)移植到Oracle8的情況下才支持用LONG和LONG RAW 這兩個相反的列類型存儲文本。不能為列類型NCLOB、DATE和NUMBER建立索引。

關(guān)于文檔格式,因為系統(tǒng)能為包括HTML、PDF、Microsoft Word和純文本在內(nèi)的大多數(shù)文檔格式建立索引,可以將其中的任何文檔類型裝載到文本列中(在"過濾器"選項中設(shè)置)。有關(guān)所支持的文檔格式的詳細信息,可以參閱Oracle Text User's Guide and Reference 中的附錄"Supported Filter Formats"。

裝載方法主要有以下幾種:

⑴SQL INSERT 語句

⑵ctxload 可執(zhí)行文件

⑶SQL*Loader

⑷從 BFILE 中裝載 LOB 的 DBMS_LOB.LOADFROMFILE() PL/SQL 過程

⑸Oracle Call Interface

Oracle text查詢常見問題

  • oracle 求PL/SQL經(jīng)典入門書籍

    這幾本由淺入深地看: Oracle PL/SQL入門 Oracle PL/SQL 實例精解(原書第4版)、 Oracle Database 11g PLSQL 程序設(shè)計 精通Oracle10gSQL和...

  • oracle zdlra 備份一體機 價格多少

    可以把備份數(shù)據(jù)導出dmp備份:1 將數(shù)據(jù)庫TEST完全導出,用戶名system 密碼manager 導出到D:\daochu.dmp中exp system/manager@TEST file=...

  • 跪求關(guān)于oracle安全性的資料!!!

    我這有一篇關(guān)于SQL Server 2005 與Oracle 10g的比較的文章,是微軟工程師寫的,相信會對你很有幫助。 =======================================...

這里先給出一個簡單示例說利用Oracle Text實現(xiàn)全文檢索的方法與步驟,在后面在進行具體的說明。Orcale9i提供了Oracle Text Manager可以簡化許多工作,所有在Oracle Text Manager中完成的工作,都可以在通過PL/SQL來實現(xiàn)。要使用Oracle Text,必須具有CTXAPP角色或者是CTXSYS用戶。Oracle Text為系統(tǒng)管理員提供CTXSYS用戶,為應用程序開發(fā)人員提供CTXAPP角色。

CTXSYS用戶可執(zhí)行以下任務:啟動Oracle Text服務器,執(zhí)行CTXAPP角色的所有任務。

具有CTXAPP角色的用戶可執(zhí)行以下任務:創(chuàng)建索引,管理 Oracle Text 數(shù)據(jù)字典,包括創(chuàng)建和刪除首選項,進行Oracle Text 查詢,使用 Oracle Text PL/SQL程序包。

使用Oracle Text的步驟:

⑴創(chuàng)建表來保存某些文檔。該示例使用一個主關(guān)鍵字列來標識每個文檔,使用一個小的VARCHAR2列來保存每個文檔。

CREATE TABLE docs (id NUMBER PRIMARY KEY,text VARCHAR2(80));

⑵將兩個示例文檔置入該表:

INSERT INTO docs VALUES (1,'the first doc');

INSERT INTO docs VALUES (2,'the second doc');

COMMIT;

⑶使用Oracle Text Manager來創(chuàng)建和修改首選項,首選項將與索引相關(guān)聯(lián)。

⑷使用Oracle Text Manager創(chuàng)建文本索引。另外,可以輸入以下使用默認首選項的 SQL 語句:

CREATE INDEX doc_index ON docs(text) INDEXTYPE IS CTXSYS.CONTEXT;

⑸使用 CONTAINS 函數(shù),發(fā)出基于內(nèi)容的文檔查詢。例如:

SELECT id FROM docs WHERE CONTAINS (text,'first') > 0;

這將在文本列包含單詞 first (即文檔1) 的 docs 中查找所有行。語句中的>0部分是有效的Oracle SQL所必需的,Oracle SQL不支持函數(shù)的布爾返回值。

以上只是一個簡單的示例,旨在給出使用Oracle Text建立全文索引的完整步驟,歸納起來如下:

⑴建表并裝載文本(包含帶有需要檢索的文本字段)

⑵配置索引

⑶建立索引

⑷發(fā)出查詢

⑸索引維護:同步與優(yōu)化(將在后面介紹)

Oracle Text 索引文檔時所使用的主要邏輯步驟如下:

⑴數(shù)據(jù)存儲邏輯搜索表的所有行,并讀取列中的數(shù)據(jù)。通常,這只是列數(shù)據(jù),但有些數(shù)據(jù)存儲使用列數(shù)據(jù)作為文檔數(shù)據(jù)的指針。例如,URL_DATASTORE 將列數(shù)據(jù)作為 URL 使用。

⑵過濾器提取文檔數(shù)據(jù)并將其轉(zhuǎn)換為文本表示方式。存儲二進制文檔 (如 Word 或 Acrobat 文件) 時需要這樣做。過濾器的輸出不必是純文本格式 -- 它可以是 XML 或 HTML 之類的文本格式。

⑶分段器提取過濾器的輸出信息,并將其轉(zhuǎn)換為純文本。包括 XML 和 HTML 在內(nèi)的不同文本格式有不同的分段器。轉(zhuǎn)換為純文本涉及檢測重要文檔段標記、移去不可見的信息和文本重新格式化。

⑷詞法分析器提取分段器中的純文本,并將其拆分為不連續(xù)的標記。既存在空白字符分隔語言使用的詞法分析器,也存在分段復雜的亞洲語言使用的專門詞法分析器。

⑸索引引擎提取詞法分析器中的所有標記、文檔段在分段器中的偏移量以及被稱為非索引字的低信息含量字列表,并構(gòu)建反向索引。倒排索引存儲標記和含有這些標記的文檔。

Oracle一直致力于全文檢索技術(shù)的研究,當Oracle9i Rlease2發(fā)布之時,Oracle數(shù)據(jù)庫的全文檢索技術(shù)已經(jīng)非常完美,Oracle Text使Oracle9i具備了強大的文本檢索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用的新名稱,在Oracle8/8i中它被稱作Oracle interMedia Text,在Oracle8以前它的名稱是Oracle ConText Cartridge。使用Oracle9i和Oracle Text,可以方便而有效地利用標準的SQL工具來構(gòu)建基于文本的新的開發(fā)工具或?qū)ΜF(xiàn)有應用程序進行擴展。應用程序開發(fā)人員可以在任何使用文本的Oracle數(shù)據(jù)庫應用程序中充分利用Oracle Text搜索,應用范圍可以是現(xiàn)有應用程序中可搜索的注釋字段,也可是實現(xiàn)涉及多種文檔格式和復雜搜索標準的大型文檔管理系統(tǒng)。Oracle Text支持Oracle數(shù)據(jù)庫所支持的大多數(shù)語言的基本全文搜索功能。本文將介紹如何使用Oracle9i的全文檢索技術(shù)來為自己的應用提供一個優(yōu)秀的解決方案。

通常,通過使用Oracle Text查詢應用程序,用戶可查看查詢所返回的文檔。用戶從命中列表中選擇一個文檔,然后應用程序以某種形式顯示該文檔。通過Oracle Text,可以用不同的方式再現(xiàn)文檔。例如,可以通過突出顯示查詢詞來顯示文檔。突出顯示的查詢詞可以是相關(guān)詞查詢中的詞,也可以是英文 ABOUT 查詢中的主題詞。

以下是關(guān)于輸出效果和用于每個輸出效果的過程的信息:

突出顯示的文檔,純文本格式版本(CTX_DOC.MARKUP)

突出顯示的文檔,HTML版本(CTX_DOC.MARKUP)

突出顯示純文本格式版本的偏移量信息(CTX_DOC.HIGHLIGHT)

突出顯示HTML 版本的偏移量信息(CTX_DOC.HIGHLIGHT)

純文本格式版本,無突出顯示(CTX_DOC.FILTER)

HTML版本文檔,無突出顯示(CTX_DOC.FILTER)

索引建好后,如果表中的數(shù)據(jù)發(fā)生變化,比如增加或修改了記錄,怎么辦?由于對表所發(fā)生的任何DML語句,都不會自動修改索引,因此,必須定時同步(sync)和優(yōu)化(optimize)索引,以正確反映數(shù)據(jù)的變化。

在索引建好后,可以在該用戶下查到Oracle自動產(chǎn)生了以下幾個表:(假設(shè)索引名為myindex):

DR$myindex$I,DR$myindex$K,DR$myindex$R,DR$myindex$N

其中以I表最重要,可以查詢一下該表:

select token_text,token_count from DR$ myindex $I where rownum<=20;

查詢結(jié)果在此省略。可以看到,該表中保存的其實就是Oracle 分析你的文檔后,生成的term記錄

在這里,包括term出現(xiàn)的位置、次數(shù)、hash值等。當文檔的內(nèi)容改變后,可以想見這個I表的內(nèi)容也應該相應改變,才能保證Oracle在做全文檢索時正確檢索到內(nèi)容(因為所謂全文檢索,其實核心就是查詢這個表)。那么如何維護該表的內(nèi)容,不能每次數(shù)據(jù)改變都重新建立索引,這就要用到sync 和 optimize了。

同步(sync):將新的term 保存到I表;

優(yōu)化(optimize):清除I表的垃圾,主要是將已經(jīng)被刪除的term從I表刪除。

Oracle提供了一個所謂的ctx server來做這個同步和優(yōu)化的工作,只需要在后臺運行這個進程,它會監(jiān)視數(shù)據(jù)的變化,及時進行同步。另外,也可以用以下的job來完成(該job要建在和表同一個用戶下):

create or replace procedure sync

is

begin

execute immediate

'alter index myindex rebuild online' ||

' parameters (''sync'')' ;

execute immediate

'alter index myindex rebuild online' ||

' parameters (''optimize full maxtime unlimited'')' ;

end sync;

/

Set ServerOutput on

declare

v_job number;

begin

Dbms_Job.Submit

(

job => v_job,

what => 'sync;',

next_date => sysdate,/* default */

interval => 'sysdate + 1/720' /* = 1 day / (24 hrs * 30 min) = 2 mins */

);

Dbms_Job.Run (v_job);

Dbms_Output.Put_Line ('Submitted as job # ' || to_char (v_job));

end;

/

job的SYSDATE + (1/720)是指每隔2分鐘同步一次。具體的時間間隔,可以根據(jù)自己的應用的需要而定。

Oracle text查詢文獻

打造中國行業(yè)ERP工程——Oracle拓寬應用市場 打造中國行業(yè)ERP工程——Oracle拓寬應用市場

格式:pdf

大?。?span id="bw744n9" class="single-tag-height">318KB

頁數(shù): 1頁

評分: 4.4

記者湯銘 辭舊迎新之際,從Oracle公司傳來兩個消息。12月19日,中國印鈔造幣總公司與Oracle中國公司在北京舉行合作簽約儀式,正式啟動造幣總公司ERP三期工程。同時中國海洋石油有限公司與Oracle中國公司也在日前合作簽約實施能源行業(yè)ERP解決方案。 印鈔造幣是國家的特種行業(yè),特種行業(yè)的每一舉一動都牽動國家經(jīng)濟的脈搏。在國際化及產(chǎn)業(yè)結(jié)構(gòu)調(diào)整成為必然趨勢之時,特種行業(yè)如何而對新環(huán)境?如何在多元化的領(lǐng)域達到實現(xiàn)專業(yè)化經(jīng)

立即下載
Oracle金融行業(yè)解決方案  Oracle GRC—實現(xiàn)企業(yè)與銀行共贏 Oracle金融行業(yè)解決方案 Oracle GRC—實現(xiàn)企業(yè)與銀行共贏

格式:pdf

大?。?span id="3ndtarj" class="single-tag-height">318KB

頁數(shù): 1頁

評分: 4.7

隨著中國銀行業(yè)逐漸與國際接軌和國內(nèi)銀行的陸續(xù)上市,公司治理、風險管理和法規(guī)遵從(以下簡稱GRC)已成為國內(nèi)銀行必須遵循和解決的問題,銀監(jiān)會要求國內(nèi)銀行在2010年必須要開始實施巴塞爾新協(xié)議,2013年為最后的期限。這就意味著國內(nèi)銀行只有僅僅3年的準備時間,國內(nèi)銀行將面臨著全方位地提高風險管理能力和法規(guī)遵從能力。

立即下載

CTI技術(shù)使電信和計算機相互融合,克服了傳統(tǒng)電信和計算機服務相對單一的缺點,將兩者完美結(jié)合了起來。其應用領(lǐng)域非常廣泛,任何需要語音、數(shù)據(jù)通信,特別是那些希望把計算機網(wǎng)與通信網(wǎng)結(jié)合起來完成語音數(shù)據(jù)信息交換的系統(tǒng)都會用到CTI技術(shù)。

TTS即語音合成技術(shù)(Text To Speech),它涉及聲學、語言學、數(shù)學信號處理技術(shù)、多媒體技術(shù)等多個學科技術(shù),是中文信息處理領(lǐng)域的一項前沿技術(shù),實現(xiàn)把計算機中任意出現(xiàn)的文字轉(zhuǎn)換成自然流暢的語音輸出。

TTS在CTI系統(tǒng)中可以應用在IVR(交互式語音應答)服務器上,以提供語音交互式平臺,為用戶電話來訪提供語音提示,引導用戶選擇服務內(nèi)容和輸入電話事務所需的數(shù)據(jù),并接受用戶在電話撥號鍵盤上輸入的信息,實現(xiàn)對計算機數(shù)據(jù)庫等信息資料的交互式訪問。

在IVR中應用TTS可以自動將文本信息轉(zhuǎn)換為語音文件,或者實時地將文本信息合成語音并通過電話發(fā)布。實現(xiàn)文本與語音自動雙向轉(zhuǎn)換,以達到人與系統(tǒng)的自動交互,隨時隨地為客戶服務。維護人員不必再人工錄音,只須將電子文檔引入系統(tǒng)中,系統(tǒng)可以自動將電子文檔轉(zhuǎn)換為語音信息播放給客戶。數(shù)據(jù)庫中存放的大量數(shù)據(jù),無需事先進行錄音,能夠隨時根據(jù)查詢條件查出并合成語音進行播報,從而大大減少了座席人員的工作負擔。

那么應如何將TTS功能附加到CTI應用中呢?某些比較先進的交換平臺,已經(jīng)在交換機的內(nèi)部實現(xiàn)了TTS的功能,并作為標準接口的一部分對外提供,業(yè)務開發(fā)商只需要簡單的調(diào)用他們即可以在業(yè)務中使用該功能。

對于未實現(xiàn)TTS功能的PBX,就需要業(yè)務開發(fā)商自己去選擇合適的平臺,在此基礎(chǔ)上進行二次開發(fā),即調(diào)用所選TTS平臺提供的標準接口,實現(xiàn)語音合成功能。

目前CTI已經(jīng)成為全球發(fā)展最為迅猛的產(chǎn)業(yè)之一,每年以50%的速度增長,CTI如同計算機產(chǎn)業(yè)一樣是一個金字塔形的產(chǎn)業(yè)鏈,從上到下會以至少20倍的幅度增值。TTS作為一種誘人的新技術(shù),如果能很好的嵌入到增值業(yè)務的應用中去,必將形成一個更好的應用前景。

杭州音通軟件有限公司是由國家教育部和浙江省人民政府聯(lián)辦并依托浙江大學而成立的高新技術(shù)公司,音通公司主要致力于計算機語音技術(shù)的研發(fā)并逐步開拓語音識別、語音流媒體傳輸?shù)绕渌Z音領(lǐng)域的研究。其核心技術(shù)(Intone_TTS)是具有自主知識產(chǎn)權(quán)的中文語音合成技術(shù),在由浙江省科技廳組織的鑒定中被專家一致鑒定為國內(nèi)領(lǐng)先地位,并已申請多項國家專利。

Intone_TTS是一套把文本信息轉(zhuǎn)換為語音信息的開發(fā)工具包,為系統(tǒng)集成商、軟件開發(fā)商提供了完備的接口函數(shù)和編程示例,使用戶能夠靈活的進行調(diào)用,并集成到其它應用系統(tǒng)中。接口需要語音合成運行庫的支持,適合多種開發(fā)環(huán)境。開發(fā)者可以根據(jù)具體的應用場合進行選擇。

它能夠?qū)λ械臐h字、英文、阿拉伯數(shù)字進行語音合成;

支持繁體字及多音字的編輯;

合成效果:自然、平滑;

規(guī)范的函數(shù)調(diào)用接口,同時支持微軟SAPI的調(diào)用;支持同步調(diào)用和異步調(diào)用方式;

支持PCM Wave,uLaw/aLaw Wave,ADPCM,Dialogic Vox等多種語音格式;

支持GB2312碼(簡體中文)、BIG5碼(繁體)、UNICODE碼;

支持多路通道同時合成;

支持Dialogic、東進、三匯等主流語音板卡;

TTS就是Text To Speech,文本轉(zhuǎn)語音,文本朗讀,差不多是一個意思。在語音系統(tǒng)開發(fā)中經(jīng)常要用到。

目前市場上的TTS很多,實現(xiàn)方式也各式各樣,有的很昂貴,如科大訊飛,據(jù)說當初得到863計劃的資助,有很高的技術(shù);有的相對便宜,如捷通華聲, InfoTalk;也有免費的,如微軟的TTS產(chǎn)品。

相對于ASR(Automatic Speech Recognition,自動語音識別)來說,實現(xiàn)一個TTS產(chǎn)品所需要的技術(shù)難度不算大,在我看來也就是個力氣活。

要是讓我們來做一個能夠把漢語句子朗讀出來的TTS,我們會怎么做呢?

有一種最簡單的TTS,就是把每個字都念出來,你會問,豈不要錄制6千多個漢字的語音?幸運的是,漢語的音節(jié)很少,很多同音字。我們最多只是需要錄制: 聲母數(shù)×韻母數(shù)×4,(其實不是每個讀音都有4聲),這樣算來,最多只需要錄制幾百個語音就可以了。

在合成的時候需要一張漢字對應拼音的對照表,漢字拼音輸入法也依賴這張表,可以在網(wǎng)上找到,不過通常沒有4聲音調(diào),大不了自己加上,呵呵,要不怎么說是力氣活呢。

這樣做出來的TTS效果也還可以,特別是朗讀一些沒有特別含義的如姓名,家庭住址,股票代碼等漢語句子,聽起來足夠清晰。這要歸功于我們偉大的母語通常都是單音節(jié),從古代的時候開始,每個漢字就有一個詞,表達一個意思。而且漢字不同于英語,英語里面很多連讀,音調(diào)節(jié)奏變化很大,漢字就簡單多了。

當然,你仍然要處理一些細節(jié),比如多音字,把"銀行"讀成"yin xing"就不對了;再比如,標點符號的處理,數(shù)字、字母的處理,這些問題對于寫過很多程序的你,當然不難了。

國內(nèi)的一些語音板卡帶的TTS,不管是賣錢的還是免費的,大體都是這樣做出來的,也就是這樣的效果。

如果要把TTS的效果弄好一點,再來點力氣活,把基本的詞錄制成語音,如常見的兩字詞,四字成語等,再做個詞庫和語音庫的對照表,每次需要合成時到詞庫里面找。這樣以詞為單位,比以字為單位,效果自然是好多了。當然,這里面還是有個技術(shù),就是分詞的技術(shù),要把復雜的句子斷成合理的詞序列,也有點技術(shù)。這也要怪新文化那些先驅(qū)們,當初倡導白話文,引進西文的橫排格式、標點符號的時候,沒有引進西文中的空格分詞。不過即使分詞算法那么不高效,不那么準確,也問題不大,如前面所說,漢字是單音節(jié)詞,把聲音合起來,大體上不會有錯。

當然,科大訊飛的力氣活又干的多了些,據(jù)說已經(jīng)進化到以常用句子為單位來錄音了,大家可以想像,這要耗費更多的力氣,換來更好的效果。

至于增加一些銜接處的"詞料",弄一些修飾性的音調(diào),我認為是無關(guān)緊要的,對整體的效果改進不是太大。

市面上商品化TTS一般還支持粵語,請個粵語播音員錄音,把上面的力氣活重做一遍就是了。

再說句題外話,很多人覺得錄音最好找電臺、電視臺的播音員,其實找個你周圍的女同事來錄制,只要吐字清晰就可以了。在某種情況下,尋常聲音比字正腔圓的新聞聯(lián)播來得可愛。

再來說說文本的標識,對于復雜文本,某些內(nèi)容程序沒有辦法處理,需要標識出來。比如,單純的數(shù)字"128",是應該念成"一百二十八"還是"一二八"?解決辦法通常是加入XML標注,如微軟的TTS:"<context ID = "number_cardinal">128</context>"念成"一百二十八","<context ID = "number_digit">128</context>"將念成"一二八"。TTS引擎可以去解釋這些標注。遺憾的是,語音XML標注并沒有形成大家都完全認可的標準,基本上是各自一套。

再說說TTS應用編程,微軟的TTS編程接口叫SAPI,是COM接口,開發(fā)起來還是有點麻煩,還好MSDN的網(wǎng)站上資料很全面。微軟的TTS雖然免費,但其中文角色目前是個男聲,聲音略嫌混濁,感覺不爽。

國內(nèi)一般的廠家提供API調(diào)用接口,相對比較簡單,可以方便地嵌入應用程序中去。

商品化的TTS還有個并發(fā)許可限制,就是限制同時合成的并發(fā)線程數(shù),我覺得這個限制用處不大。無論哪種TTS,都可以將文本文件轉(zhuǎn)換成語音文件,供語音卡播放。大部分應用句子比較短小,一般不會超過100個漢字,合成的時間是非常短的,弄個線程專門負責合成,其它應用向該線程請求就是了,萬一句子很長,把它分解成多個短句子就是了,播放的速度總是比合成的速度慢。

也很多應用是脫機合成,沒有實時性要求,就更不必買多個許可了。

更多情況下,我們甚至沒有必要購買TTS,比如語音開發(fā)中常見的費用催繳,撥通后播放:"尊敬的客戶,您本月的費用是:212元",前面部分對所有客戶都一樣,錄一個語音文件就是了,而數(shù)字的合成是很簡單的,你只要錄制好10個數(shù)字語音,再加上十,百,千,萬,再加上金錢的單位"元"。

包括中文語音處理和語音合成,利用中文韻律等相關(guān)知識對中文語句進行分詞、詞性判斷、注音、數(shù)字符號轉(zhuǎn)換,語音合成通過查詢中文語音庫得到語音。目前中文TTS系統(tǒng),比較著名的有:IBM,Microsoft,F(xiàn)ujitsu,科大訊飛,捷通華聲等研究的系統(tǒng)。目前比較關(guān)鍵的就是中文韻律處理、符號數(shù)字、多音字、構(gòu)詞方面有較多的問題,需要不斷研究,使得中文語音合成的自然化程度較高。

Oracle text相關(guān)推薦
  • 相關(guān)百科
  • 相關(guān)知識
  • 相關(guān)專欄

最新詞條

安徽省政采項目管理咨詢有限公司 數(shù)字景楓科技發(fā)展(南京)有限公司 懷化市人民政府電子政務管理辦公室 河北省高速公路京德臨時籌建處 中石化華東石油工程有限公司工程技術(shù)分公司 手持無線POS機 廣東合正采購招標有限公司 上海城建信息科技有限公司 甘肅鑫禾國際招標有限公司 燒結(jié)金屬材料 齒輪計量泵 廣州采陽招標代理有限公司河源分公司 高鋁碳化硅磚 博洛尼智能科技(青島)有限公司 燒結(jié)剛玉磚 深圳市東海國際招標有限公司 搭建香蕉育苗大棚 SF計量單位 福建省中億通招標咨詢有限公司 泛海三江 威海鼠尾草 廣東國咨招標有限公司 Excel 數(shù)據(jù)處理與分析應用大全 甘肅中泰博瑞工程項目管理咨詢有限公司 山東創(chuàng)盈項目管理有限公司 當代建筑大師 廣西北纜電纜有限公司 拆邊機 大山檳榔 上海地鐵維護保障有限公司通號分公司 甘肅中維國際招標有限公司 舌花雛菊 華潤燃氣(上海)有限公司 湖北鑫宇陽光工程咨詢有限公司 GB8163標準無縫鋼管 中國石油煉化工程建設(shè)項目部 韶關(guān)市優(yōu)采招標代理有限公司 莎草目 建設(shè)部關(guān)于開展城市規(guī)劃動態(tài)監(jiān)測工作的通知 電梯平層準確度 廣州利好來電氣有限公司 蘇州弘創(chuàng)招投標代理有限公司