如何判斷一段聲音是不是自然語言?
假設這段聲音足夠長,有沒有什麼方法,定量的判斷它是否是一種自然語言?
可以的·!
是否能破譯有待商榷,但是判斷是否是語言,或者說信號中是否包含信息是可以做到的。
看下面這張圖。
左上的是一組樂透中獎數字的特殊號碼連續500期的排列,右邊是聲音「Na」的波形。
只要對兩個信號分別做自相關運算(水深,可自行百度,一種計算方法),就可以看到,樂透中獎數字的自相關函數(左下圖)除了在0以外有個很高的值以外,其他部分是的值是接近於沒有的。而聲音Na的自相關函數(右下圖)是存在一個數值分布的。
因為樂透中獎數字毫無規律可言,是純隨機事件,每一期與下一期是完全獨立的,所以它的自相關函數會是左下圖的樣子。而包含信息的信號,其自相關函數是有意義的。
實際上,樂透中獎號碼可以算作是無意義的雜訊信號,而聲音波形則是包含信息的信號,他們的差異就反映在自相關函數上。
雜訊實際上代表的就是混亂與無序,如果中獎號碼可以是任意整數,那麼出現某一特定數字的概率為0且所有值出現的概率是相等的,根據香農的信息熵公式
可以算出雜訊信號的信息熵為0.
。而包含信息的語言是程某一種規律的,信號中某一值出現的概率為有限大小,且每個數字出現的概率不相等,那麼這個信號就是有意義的。
補充 @Zhaodong Wang 的評論:
我簡單補充一下吧,因為涉及的東西很多很深也就不在下面另起作答了。之所以答主會碰到自相關無法應用的問題,是因為你提出的判定隨機無序的雜訊的方法有點簡單了,不過思路是很對的。僅僅說自相關圖或者功率譜圖上沒有明顯分布還不能說這就是無序的雜訊。有時候這可能是因為維度不匹配造成的,有序的序列軌道維度很高的時候映射到低維度空間看起來也是混亂無序的,很多吸引子結構可能沒有打開。因此一般還需要確定嵌入維數,然後相空間重構,計算李雅普諾夫指數,測度熵或者拓撲熵(而不是簡單的信息熵)來判定是不是無序的。之所以說到這個問題是由於自然界的聲音還有很多是由極其複雜的非線性機制產生的(比如三體運動什麼的),並非純隨機的。本題的很多答案都錯了。只有一種方法:看這段音有沒有意義。
如果僅有音本身,再長也無法判斷它是不是語音。
語言是一種符號,它有能指所指,或者說得通俗點,它有音有意。我們要判斷一段「音」是不是「語音」,必須藉助意。
其實創造一門語言很簡單的,基本上學過語言學的人有能力干這個事。大爆炸》里的克林貢語就是一門成熟的人造語言,著名的世界語也是人造語言,而且現在有很多人拿世界語當母語。
構造真語言都不難,構建一門假語言更簡單。你只需要把一些音按照一定的「構詞法」構建很多「詞」,然後把這些單詞按照一定的「語法」規則組合起來,跟實際的語言聽起來沒什麼區別的,再分析也沒用,因為它的「音」、「構詞法」和「語法」可以跟真正的語言一模一樣,唯一的區別就是這段話沒有意義。
舉個最簡單的例子,我現在把英語里所有的t都換成d,d都換成t,然後錄音。你只有根據這段音是否具有意義來判斷它是不是語言,而無法通過音本身。
我覺得大家紛紛扯到資訊理論和機器學習什麼的之前先解決些fundamental的問題吧(其實我很好奇為什麼這題沒有一個搞speech recognition和NLP的人認真來答一下……只有第一的autocorrelation勉強是相關的……)我理解題目的意思是首先要區分一段音頻信號里有沒有人類語音,還是只有環境聲或者無意義的雜訊信號……那麼答案是確定的,人類(以及其他許多能通過聲音溝通的動物)的語音有很明顯的特徵,比如下面的:
這張圖現實了短時頻譜相對於時間的變化,可以看到有非常明顯的一道道水平的能量分布,這是因為發濁音時聲帶振動,產生了基頻,採樣後通過聲道和口腔作為濾波器之後就形成了這樣的離散分布。發清音時聲帶不振動,能量在頻譜上是連續的分布(模糊一片),不大容易和自然音區分開來(但實際上區別還是有的)。別的頻譜上的特徵還有很多(比如爆破音等),這方面的經驗研究汗牛充棟....話說我本科在香港時學語音識別的課,課程的前1/3老師最喜歡考的就是給一張像上面一樣的頻譜圖,讓你光看圖大致猜出來這句話可能在說什麼……
這種判斷是不是有人在說話的phonetics研究是做語音識別的基礎,比如siri裡面你對它說非系統語音它無法識別,但是至少知道有人在說話,而環境噪音再響它也不會有反應。
不會寫很難得答案,簡單寫一寫吧。
1、一段語音太短,要判斷是否是語言,必須要有足夠多的語料。
2、教科書一般定義,語言是人類特有的。動物之間交流的聲音之類不算語言。這是人與動物的根本區別之一。
3、語言必須內含信息。
4、語言必須有規律、成系統。這點動物就做不到。你能想像動物的叫聲能分動詞、名詞,主動句、被動句嗎?最基本的,動物的某段聲音里,無法分出基本結構單位,分不出哪些音算是一個字或詞。他們的某個叫聲無法穩定、有規律、成系統的代表一個意思。
5、語言是人類特有的,但不是人隨便說什麼就是語言。失語症的人也能說話,有些也能說些簡單的詞語句子。但是無法像正常人一樣用語法、語義組織語言,與其他人交流。
3、一般對於非母語,人類語言,比如母語是漢語的人到了一個陌生的島上,聽見很多陌生人在說話,怎麼去分析他們的語言?用層次分析法。比如對方說了一句話。我們把這句話想像成一條繩子,每一個字詞都按順序依次排列在繩子上,我們對這句話的意思進行理解,然後推測哪些音對應哪些意義,再對句法進行分析。這種過程就像把繩子切成更小的一段段,更深層的去分析那小段段,再分析為什麼這段小繩子排在這個位置,那一段排在那個位置。
具體過程如下:
1、拿到更多的語音材料。
2、判斷是否是動物還是人類。如果是人類則繼續。
3、分析你手裡的那段聲音(簡稱句子a),是否能根據停頓、語氣等,分出小單位。比如我們說「你好」,就是兩個音節。
4、從更多的語音材料里找,句子a里的音節是不是經常出現。精確音節的劃分。
5、找出句子a的意義。
6、把句子a像繩子一樣切成一段段。
7、分析句子a的語法,如何組詞成句的。找到基本的語法規律。
8、查看其他語料是否也是通過這種語法規律組成的。
9.以上都是,則為語言。
這個問題有趣。我的回答是:在樣本量足夠大的情況下,可以確定是否是語言。但難點在於進行後續的整理、分析和邏輯解讀。是否是語言,要看其中能否分辨出人類科學可以理解的邏輯。
有一個現成的例子,一部電影,名叫contact《超時空接觸》,裡面就描述了這樣一個情景:從外太空接到大量有規律信號,各種古怪,但確定是智慧生物發回的信息。不過在解讀的時候遇到各種困難,最終找到切入角度——三維解讀。而外星人在信號中聰明的給出了密鑰,是宇宙通用的語言:數學。於是後續情節才可以展開。
因此,這個問題要得到肯定的回答,那就要有如下幾個條件1.信息量足夠大,這個貌似題主已經說了,ok
2.找到合適的數據分析角度,先整理,再歸納,各種嘗試
3.找到人類科技水平下能夠理解的邏輯,比如電影里是這樣表達的:1+1=2√,2+2=4√,2+2=5×,於是地球人就理解了,數學邏輯是宇宙通用的。那麼這些信息是可以被視作一種語言,儘管我們未必能完全理解。
這個問題大妙。
各位回答者都提到了語言必須有一定的規律pattern。如果給一段聲音,從信號處理的角度我們有可能斷定它不是語言。比如白噪音,這樣的聲音在各個頻段都均勻分布,完全不可壓縮。所以,一段白噪音不是可能不是語言。
從統計上我們都能從一段信號出某種規律。也就是說這段信號是可壓縮的。那麼有規律有pattern的信號就能斷定是某種語言么?請思考下面這樣一個思想實驗:
你得到了兩串數字
A 01010100100010101010...
B 01010101111000101010...
現在我告訴你其中一段是一系列拋硬幣實驗的的正反面結果(0是正面,1是背面);另一段是一個人像假裝隨機實驗胡亂寫下的。請問,你如何區分哪個是真隨機數列?
方法:雖然人想偽裝隨機,會可以均勻寫下各處差不多的0和1。但是如果把數列斷開三個為一組
010/010/101/011/101/010/011...
統計010,110,001,100,011等模式出現的頻率。只有「真隨機數列」會在這個模式均勻分布,但人寫的偽隨機數列可能不能做到讓這些模式均勻出現。因為人為了讓1和0比例一樣,會可以刻意根據前面自己寫下的數字來修正將要寫下的數字。如果出現超級天才,能刻意修正010,110這些三元數出現的評論,我們就統計0001,1010,0101四元數模式的頻率分布。總之,人是不可能產生「真隨機」的
好統計學到此為止,接下來就是哲學了。回到問題,你覺得一個人寫下的01010001...隨機數列是語言么?這個隨機數列也有很明顯的模式。比如010出現的頻率特別多,你肯能會猜測010是這種語言中的冠詞(a,the,an)?
顯然,即便這段信號很有規律,沒有人覺得這串人為的偽隨機數是一種語言。因為,有兩個原因,1:信號的發出這沒有想通過這段數字傳遞信息。2:信號的接受者也無法把信號中的統計規律和自己的意義系統聯繫起來。
語言是信號的一個子集。不是所有規律的信號都是語言。一個信號成為語言必須滿足信號源和接受源都能對信號做出對方所期望的反應。鸚鵡學舌不是語言,雖然聽者有心,但言者無意。貓叫不是語言,因為言者有意,但聽者無心。至於什麼是理解一個語言就扯到意義里亂semtics中文屋子什麼的,那就是題外話了。
看到有人說語言的本質是什麼重複的元素。這個說法是錯誤的。有重複pattern的信號很多,重複只是語言的一個特徵。語言是沒有本質的。真正值得我們研究的是智慧體如何使用它。如何使用聲音信號以及如何對同類聲音信號做出反應。至於語用學我就不懂了。
@matrix67 曾經大力推薦一個小說叫《你一生的故事》,將的就是一個姑娘怎麼通過觀察外星人的反應和外形交流並學會他們的語言。作者是個cs的phd,而且語言學也頗有功力。感興趣可看看。
所以,只憑藉一段聲音是不能判斷它是否是語音。因為你觀察不到某種文明是如何使用這個信號的。
太困,錯字語病明天改,thx@matrix67
先說點廢話。
單純從「騙點贊」的角度來說,這個時候才來回答問題大概是不夠聰明的(或許開頭加上「我實名反對以上所有答案」會有效果一些?╮(╯▽╰)╭)。不過這個問題是我 fo 的一位大牛提出來的,所以我想還是認真思考一下再來回答,加上拖延症發作,這兩天一直沒有動手。不過這兩天也想了不少,所以還是嘗試回答一下吧。
先說結論:我認為是可以做出判斷的。
【人類的語言】
什麼是語言?這是很難界定的,或者說,大概是根本沒辦法下定義的。Wiki 的 language 詞條介紹說人類大概有 6000~7000 種語言[1]。這麼多語言,之所以作為「語言」而與自然界的其他聲音或者圖像區別開,一定是有一些共同的特徵的。簡單舉幾個例子,比如:
1. 發音的節奏性。人類在交流說話的時候,不論哪一種語言,都會由一定的節奏性。相反,自然界里其他的一些聲音,比如雨聲濤聲,常常是連綿不絕的;
2. 音素的組合。人類語言的發音是可以拆分成一些基本的「音素」的,類似於英語的英標。這些音素的組合是有一定模式的,比如普通話里不會有兩個聲母連續出現,英語里也見不到 /fj/ 的發音;
3. ……
還可以舉出好多例子,總結起來可以就是一句話:語言的模式(pattern)。這個模式可以使時域上的模式(比如發音的節奏性)或者頻域上的模式(比如音高的表現形式)或者音素組合的模式,正因為有這些模式,語言(文字)才能夠與其他的自然聲音或者圖像區別開。
為什麼?
【包含信息的流】
因為語言最大的功能就是交流,要交流就要包含信息,而只有包含一些模式的流(stream)才能攜帶、傳遞信息。如果一點模式都沒有,那隻能是隨機的雜訊罷了。
所以,語言可以看做是一種包含信息的流。
看起來奇怪嗎?並不奇怪,仔細想想,就是這麼回事。Queensland 大學的研究組做過一個項目[4],他們安排兩個機器人在房間里遊盪,並通過麥克風交流他們遊盪的見聞,慢慢的,這兩個機器人之間就形成了一種他們自己才懂的語言,用於描述這個房間里的情況。他們的對話里充滿了 kiyi、liye 等人類看起來不知所云的詞語,但通過這些莫名其妙的詞語他們之間確實進行了信息的交流,使得一台機器人可以向另一台機器人描述他去過的角落。
這個圖就是兩個機器人通過交流獲得的對「這個世界」的認識。
所以我擴展一下題目里對自然語言的限定,怎樣確定某一段流(聲音、文本、數據……)是某種語言的一種表現形式?或者根據我上面說的,怎樣確定某一段流是帶有信息的流?
【信息的熵】
香農告訴我們,可以用「信息熵」來衡量不確定性,而不確定性,與之對應的,就是信息。
比如,我說明天地球還會轉,這句話就沒有多少信息量,因為「地球在轉」這是一個一定會發生的事情,概率為 1,我說了這句話不會為這個事件的狀態發生任何改變;又比如,我說明天會下雨,這句話就有一定的信息量,因為「下雨」這個事情明天不一定會發生,如果你相信我說的話,那麼對於明天是否會下雨這個事情狀態的判斷,在你這裡就發生了改變。
那麼怎麼衡量呢?香農說可以這麼算,假如一個事情他有 種狀態,每個狀態發生的概率分別是 那麼信息熵就是:
對於一個純隨機的事件,各個狀態都是等概率出現的,那麼就不能帶來任何信息,這個時候熵值是最大的(這是個簡單的證明題,可以出課後習題哈哈哈);而對於一個確定事件,那麼只有某一個狀態概率為 1 而其餘狀態概率為 0,所以這個時候熵最小(就等於 0)。信息的引入,就將系統的熵減小,直到最後為 0,變為完全確定為止。
對於一段流來說,怎麼算熵呢?
如果我們簡單地認為,一個流就是由一些基本元素組成的序列(比如英文文本就是由26個字母加一些符號組成的序列),那麼統計一下一段流裡面各個基本元素出現的概率,就可以根據上面這個公式計算這段流的熵了,跟一段完全隨機的流比起來,這個熵應該是要小一些的。
舉幾個例子。
比如《哈利波特與死亡聖器》的英文版,我先隨便摘取一段:
Harry sat down, took the square parcel she had indicated, and unwrapped it.
Inside was a watch very like the one Mr. and Mrs. Weasley had given Ron for his
seventeenth; it was gold, with stars circling around the race instead of hands.
這段話由 30 個字元組成(26個英文字母+空格+逗號句號分號,英文字母大小寫算一個),統計一下每一個字元出現的次數,就能得出這些字元出現的概率,然後代入計算就是了。上面這段話我就不算了(有興趣可以自己手算一下~),我寫了個程序對整本書統計了一下,得到結果是熵值為 4.12,而同樣是這本書,中文版的熵值為 8.64
我寫的程序(的一部分)在此:
根據一些研究,不同語言的熵值也略有差別[6]:
順便一提,根據馮志偉[9]的研究,漢字的熵為 9.65。
這些語言的熵值都比完全的隨機序列要來的小。比如 27 個字元的隨機序列熵值為 4.75,32 個字元的隨機序列熵值為 5.00。而馮志偉統計的漢字字元數有 12366 個,如果是完全隨機的那麼漢字的熵將達到 13.59。(對比一下英文版哈7的熵4.12,中文版8.64)說明這些語言並非完全隨機的,而是帶有一定的信息。
這裡我發現一個有意思的現象,這裡計算的英文熵值比上面表格列出的來的大一些,說明這本小說文字上的變化比英文總體的平均值要多一些;而中文正好相反,這本小說中文版文字上的變化比中文總體平均來的少一些。當然不僅僅是中文英文可以拿來計算,我們也可以計算一點別的。比如這麼一段字元流:
MSIRGKVALVTGASSGIGAATARKLATEGVVVGLAARRKERLDALAAEITGAGRKAVALPADVTDPASCKAAADALITQFGRIDVLINNAGLMPLSSVDSLRVDEWKRMVDVNISGVLNATAAVLPQMIAQHSGHIFNMSSIAGRKVFAGLAVYCATKAAVTAFSDGLRMEIGPKHNIRVTCIQPGTVKSELYEQITDASYRKQMDDLAASMTYLDGEDIADTILFALKAPSRMDVAELFVLPTEQGW……
這是一種醋酸桿菌(acetobacter)的蛋白質序列,當然我拿到的全部序列有 84 萬個蛋白質[2][3],這裡只列出了一部分。對這個字元流計算信息熵,我得到了他的熵值是 4.12,而我們知道蛋白質一共有 20 種,如果完全是隨機排列的,那麼熵值應該是 4.32。
=== 補充===評論里 @詩云 提到計算機語言,那我再舉一個例子,比如這樣一段字元流:
1010110000000000011001110011011111100100000000001010110011010000000000000000000011011010000000000000000000000000000000011111111111111010000000000010010011011111110011100000000001110111000001011101001000000000001001100000000010100001111100011110101000000000001010111111111111111010110110111001110111111111111110100000000001100000000000000010010011011111110011111111111111111010000000000110100000000000001001001101111111001110000000001010110000……
這是 windows 的一個系統文件(dinput.dll)的二進位表示(的一部分)。對這個流計算熵,得到 0.91,而隨機分布的 0/1 字元的熵值是 1.00。
【語言模型與熵】到這裡,似乎能夠回答題主的問題了,至少能夠回答我擴展的問題了。用信息熵的方法可以判定一個流所攜帶的信息的多少。
不過先別忙,作為自然語言,還有他自己的結構。
先來看一個例子。如果我寫出一個字母 a 然後讓人猜後面是什麼字母,那可能性會非常多,比如 b(abandon……大家懂的=___=)比如 t 等等,但是一般來說不太會猜 k(原諒我渣辭彙量,一時之間只想到 akin)
如果我繼續寫字母 ap,那麼下一個比較可能是 a,p,等,但是相對來說可能的字母要少了一些,比如 b 就不會去猜了。
如果繼續寫 app 呢?繼續寫到 appl 呢?
可以看到,隨著我寫出的字母增加,隨後出現的字母可能性也會減少,也就是說,一個正常的語言裡面,單位元素(比如字元、音素等)之間並不是獨立的。用嚴謹的科學語言來說就是,一個語言的流,是不具備馬爾科夫性的。這句話什麼意思呢?意思是說,語言裡面包含的信息,比我們上面計算看到的還要多。
既然不是獨立的,那麼可以假設後面出現的元素,與前 K 個元素都有關,這就是統計語言模型中的 K 元語言模型。(關於自然語言處理、統計語言模型方面的一些技術和思路,可以參看 Google 的吳軍博士的數學之美系列[7][8])
語言流的元素獨立與否由什麼區別呢?當然是有的,繼續舉例子。如果我每次從一篇英文文章里隨機挑選一個字母,把他們放到一起來組成一篇新的文章,比如這裡我生成的這麼一段:
liy sori.uueeer ImtdT slrrs eg strnpr etnlufbayr f, lrnmreionsnhheehdr i n s"antat Tlaos fgwfbt, Se lle ttle hnshrr euofau t nnitqtfote. bt bhtTlathot.hk,in flann lrnd ,raem xotsieer es,rMnti eniw nm sociohsto plsh,ma .nid.adtpgca hsyahi nfsum tis.agfohieafdceel in n eoyuhsjnYtevCftooyel ahpouoa AocrCa o,e aulernei ;s y ceoergpi n ahn,kahH eeedh arasghsrestedvusdr nhjaapo mLsep ryivefrnelg digrthereee deTaoktlisyai heemkora twr c wee vv w narei .tosefth s h ieuweli.ot ineosmea msmp idear aKfatc dnhyeno n aret cunrsooatz e rnnh:eoepnstf t oloo mbo htnliahtnrno chn ebtmair e uopualtntee ., ……
是不是看起來也像是某種語言?這篇文章理論上將和原始的文章(沒錯我就是從哈7的英文版裡面抽字母的)有相同的熵值(這個可以想一想,很容易證明),但似乎不太好將他作為一種語言,因為他各個字元之間是獨立的,所傳遞的信息有限。
那麼這個思路對我們之前的計算有沒有幫助呢?有的,我們不僅僅統計每一個字元出現的概率,我們還可以統計兩兩出現的字元組合的出現概率,可以統計三三出現的字元組合出現概率,……等等,從而計算出二階熵值、三階熵值……等等。如果計算能力足夠強大,我們可以計算出無窮階熵值,這就是某一個語言的「極限熵」了,它衡量了這個語言整體傳遞和攜帶信息的能力。從低階熵到高階熵的不同分布也代表了某種語言的內在結構(這個說開去又有很多了)。
對於前面的哈利波特與死亡聖器的英文版,我們計算一下它的高階熵值:
再來看看中文版的:
順便,根據一些研究[10],英語的極限熵大約為 0.9296 到 1.5604 比特之間,其平均值為 1.245 比特,而漢語的極限熵大約為 5.31(上面的圖表是根據一篇文章統計的,不代表語言整體的情況,尤其是對中文這種字元數量極其龐大的語言,高階熵誤差會非常大)
好了,再來看看剛才提到的隨機抽字母組成文章。我仍舊從哈利波特的英文版裡面抽取字母,然後統計:
順便貼一下剛才醋酸桿菌的蛋白質序列的結果:
可以看到,醋酸桿菌蛋白質序列的元素之間基本上是獨立的,如果給出了前若干個蛋白質讓人猜下一個,大概是不容易猜到的。
=== 補充 ===
既然上面補充了一個計算機語言(機器碼)的例子,那這裡也統計一下機器碼的高階熵值
看起來,計算機語言(機器碼)與人類的自然語言(英語漢語等)似乎更像呢!
【結論】
1. 如果真的給出足夠長的流,要判斷是不是一種(自然)語言,應該是容易做到的。雖然大概不能 100% 做出肯定的結論,但是給出一個可能性很大的判斷是沒有問題的。
2. 英語和漢語,雖然從語言結構上來說天差地別,但是從攜帶信息的角度,二者有一些共同之處;甚至於計算機語言(機器碼)與他們也是很相近的。
3. 而生物的蛋白質序列,其元素之間接近於獨立。雖然其確實攜帶並傳遞了信息,但是與人類的自然語言的結構是相差較遠的。
【一些討論】
現在排名第一的 @Heinrich 的答案提出的思路是很對的,利用信息熵來研究流所攜帶的信息。不過開頭部分舉的例子不是很合理,尤其是,自相關是無法代替熵值來衡量信息量的。
為什麼呢?因為自相關本質上是衡量周期性的,你舉的例子裡面,聲音信號恰好是周期性很強的信號,所以自相關函數有較大的值。但是一個語言的流,並不一定有很強的周期性,相反,那些周期性很強的流很可能不是一個自然語言。
我繼續拿哈利波特來做測試,我截取了其中1000個字元,計算自相關結果如下:
是不是和樂透彩票的自相關函數很像?很像就對了,因為英語也不是周期性的流。參考文獻:
[1] http://en.wikipedia.org/wiki/Language
[2] http://www.ncbi.nlm.nih.gov
[3] UniProtKB
[4] Lingodroids - The University of Queensland, Australia
[5] Entropy (information theory)
[6] Shannon怎樣測定英語字母的熵值?
[7] 數學之美/吳軍
[8] 數學之美系列完整版(最新全集列表)作者:吳軍, Google 研究員 來源:Google黑板報 酷勤網收集 2007-12-04
[9] Publications of NLP-1, Prof. FENG Zhiwei
在這段聲音足夠長的情況下,先用機器學習中的分類演算法處理,分別分析熵值,自然語言的熵一般在一個特定的範圍內。
有意思的問題!
不過問題本身有一些缺陷。「定量」是個什麼概念?判斷指的是由人來判斷還是由機器來判斷?
如果由人來判斷,將是一個很主觀的過程,很大程度上基於聽到這段聲音的個人的經驗,而且很顯然人不可能「定量」的去判斷聲音這種事物。這裡假定題主所說的是機器。
不論這段聲音是聲波還是電磁波,都一定會有噪音和干擾,還會有強度變化,因此直接根據聲音來判斷是否語言是比較困難的。相對來說,根據文字或編碼判斷其是否是語言比聲音要容易。如果把這段聲波或電磁波通過處理轉換成文字或編碼,就能夠變得相對容易。
接下來的工作就是尋找模式了,也就是說重複的文字和結構,也就是辭彙和語法。如果沒有用於交流,最終得到的結果只能是一個概率判斷,如果題目中的「定量」指的是斷定其為一種語言,還是不大可能。畢竟,在打字機上隨機打字足夠長的時間,也有可能打出莎士比亞的名著出來。反對一下第一名的Heinrich關於信息熵的那段論述,概念完全反了好吧……
雜訊實際上代表的就是混亂與無序,如果中獎號碼可以是任意整數,那麼出現某一特定數字的概率為0且所有值出現的概率是相等的,根據香農的信息熵公式
可以算出雜訊信號的信息熵為0.
。而包含信息的語言是程某一種規律的,信號中某一值出現的概率為有限大小,且每個數字出現的概率不相等,那麼這個信號就是有意義的。
雜訊代表的是混亂和無序沒錯,但是信息熵(entropy)的定義是描述信號的不確定性,也就是信號越不確定,entropy越大。確定信號(比如X恆等於1)的entropy才是0.
對於中獎號碼,假設一共有N種組合,每種組合以等概率出現,entropy=logN,而且等概率情形是N種組合的情況下熵最大的情形。
這個問題問得很好。
題主的問題里有兩個關鍵點:1、這段聲音足夠長。
也就是說,這段聲音可以給我們提供足夠的信息,並且極有可能會循環播放。
2、定量地判斷它是一種語言。
根據萬能的度娘上的解釋:
定性觀察只是要求對物質的組成有所了解。此僅僅涉及到性質。定量觀測要求到物質的組成以及在各物質的含量問題。
抱歉,我沒看懂這段解釋……我的理解是,題主想要知道有什麼可以重複使用、並且量化其執行步驟的方法,來檢測一段未知的音頻是否是語言。
所以,用感性的思路來回答這道題明顯是不對的。「萬物皆有語言」這麼禪意的概念,只能先放在一邊了。
-----------------我是來治猩猩的分割線-----------------------
以下是我的回答:
以人類搜索外太空智慧生命的邏輯思路為例:
美國加州大學洛杉磯分校行星科學家邁克爾-布斯奇表示,「如果你準備與外星人進行對話,那麼最基本的要求是,你最好能夠擁有讓人可理解的東西。」
因此,如果一類語言或電訊號希望被接收到的人所解讀,就必須包含一些放之宇宙而皆準的信息,來幫助接受者破解這一語言系統。
例如,搭載在先驅者號探測器上的地球名片描繪著地球上第一號元素氫的結構(網路上的翻譯普遍有「分子」二字,但是「氫分子」這個概念本身是不成立的- @楊文清 ,所以此處刪去「分子」二字)及中性氫的超精細躍遷,並用氫在1420兆赫的21厘米譜線(宇宙中分布最廣泛的電磁輻射譜線)波長為單位,將人類男性與女性的身高轉化為二進位碼的形式。如果接收到這一名片的外星文明的科學已經達到了原子級別,那麼TA們便能夠解讀這一信息。
此外,太陽的位置是用它與14顆脈衝星的相對位置關係來表示的。作為「宇宙的時鐘」,脈衝星以長期恆定的速率自轉。在銀河系中脈衝星的數量不多,而脈衝星的精確周期在「名片」中用二進位碼描述,據此,天文學發達的地外文明可以很容易判斷太陽系的位置。
(喂,你們這樣真的好嗎!想讓地球毀滅嗎卧槽!如果老子早出生20年一定會去美帝阻止你們的好嗎!!!你們難道不知道大劉的「黑暗森林」定律嗎!主動暴露位置是要鬧哪樣!!!我不想被二向箔毀滅啊啊啊啊啊啊啊啊)
又例如,1973年11月,世界上的一些科學家集中於美洲加勒比海地區的阿雷西博天文台,向武仙座的M13 球狀星團發射了另一種頗具想像力的帶圖的「地球名片」,而且還是以電報的形式發出。這張別具風格的「地球名片」寬23 個字碼,長73 個字碼,總面積1679 個字碼。「名片」的上半部分又分為兩部分:第一部分代表1 至10 的10 個數字;第二部分代表與生物現象密切相關的5種化學元素的原子序數,即氫(1)、碳(6)、氮(7)、氧(8)、磷(15)。「名片」的下部分為人形圖像和太陽系九大行星示意圖。
(卧槽你們這群美帝反動分子要鬧哪樣!!!你們有自我毀滅傾向嗎!!!為什麼一個兩個趕著把俺們人類的位置告訴三體人!!!羅輯呢?!面壁者呢?!章北海呢?!雲天明呢!?你們快來拯救我啊啊啊啊啊啊啊)
又例如,很多科幻作品中,都將宇宙通用的素數序列作為星際文明首次交流時附帶的解碼秘鑰:2、3、5、7、11、13、17、19……(1不算素數,1和0非素非合,感興趣的同學可以去百度一下具體解釋。)
那麼,我們的第一個辦法就是:看看這段語音中有無包含你可以理解的、通行於你這個世界觀的真理,並通過這一真理作為關鍵鑰匙,去解碼剩下的音符。
==============================================================================
第二種方法來自於密碼破譯規律:先確定一段語音中出現頻率最多的那個字,然後將這個音符與現有的主要使用語言體系中的常用字進行比較,進而確定這一音符的意義,進而對剩餘部分進行解碼。
這個辦法,如果事先對語音的內容沒有頭緒,無法對其內容的範圍進行縮小的話——例如戰爭中破解對方的軍隊命令便可以縮小推測範圍,縮短破解時間——那麼,主要依靠的,便是破解者的運算能力。
運算能力越強,破解的時間就越短,屬於不斷試錯的笨辦法。比如,在計算能力上,人腦<小霸王學習機<計算機<蘋果機(好吧我是開玩笑的)<巨型機<人肉鏡面計算陣列……(好像有什麼奇怪的東西混進來了……哎?你說你叫秦始皇?)
回答完畢,鞠躬。沒看過大劉《三體》的朋友們請忽略括弧內黑體字的吐槽,謝謝。我最喜歡的角色是汪三水和大史,又及。
PS:關於二進位是否能被外星人所理解:
理論上來說,數學這種東西是通行於全宇宙的。例如質數,例如二進位。
二進位並非是程序員專用的語言,是先有了二進位這種極其簡潔、美麗、實用的數學規律之後,才因為其在邏輯上的簡潔易懂、易使用性,被廣泛應用於計算機編程行業。因為它只使用0、1兩個數字元號,非常簡單方便,易於用電子方式實現。
正如德國天才大師萊布尼茨(Gottfried Wilhelm Leibniz,1646 - 1716)留下的手稿中所說:「1與0,一切數字的神奇淵源。這是造物的秘密美妙的典範,因為,一切無非都來自上帝。「他甚至對中國的八卦系統進行了多年的研究,堅定地認為八卦與二進位其實是同一種數學語言。
可憐的萊布尼茨,他因此斷言:」二進位乃是具有世界普遍性的、最完美的邏輯語言。「
所以,我們可以推理,即便三體人中沒有一種叫做」程序猿「的群體,只要它們有」學霸「這個種族,有對數學的理解能力和探索能力,就肯定能明白俺們地球人在宇宙的這頭兒瞎嗶嗶啥。反過來說,如果它們連數學中的二進位這麼簡單的問題都整不明白,怎麼可能接收到我們的信息?一種方法是分析頻譜。BBC有一部關於土撥鼠的紀錄片,裡面科學家為了確定土撥鼠的叫聲裡面有沒有包含信息,就錄下來叫聲來分析聲紋,也就是頻譜。如果應對不同的侵入者土撥鼠的叫聲頻譜不同,且面對同種入侵者所有土撥鼠的頻譜相同,那麼可以確定它們有自己的辭彙和語言。
.
越來越覺得,這個問題,問的不妥,且自問自答一篇。
.
語言至少要包含以下幾點:
1.首先,語言要傳遞信息;
2.語言要具有模式;
3.語言要能被理解。
.
其實,第二點是包含在第一點中的。這裡單獨提出來,是因為,模式很重要。
.
做了這些思考之後,愈發覺得問得不妥。
.
比如自然科學的研究,便是從「現象」中發現模式,用模式理解自然。
.
舉個生活中的例子,如果我們不懂圍棋,便很難理解那黑白之物,到底在做什麼,有什麼意義。但,實際上,他們在對弈,在交戰,可以看做一種語言。
.
我本不想用這種看似有些「禪意」的文字來回答,可是,左思右想,它似乎本來就是這樣。
.
題主其實是大神,說一下自己的理解,請您輕拍
我的結論是:任何有規律有意義的聲音(信號)都可以被理解成語言,但是究竟是不是語言。不由聲音本身決定而是取決於這段聲音是否是由聲音製造者主觀產生並用來表達一定含義。
關於語言的定義很多很多,既然是語言,那麼一定會表達出一個意思。而這個語言的載體自然是有規律的可循的。我們知道聲音是一種波動,總可以被分解為不同頻率不同強度的正弦波的疊加。如果用聲音作為載體表示語言,那麼這段聲音必然在頻率和振幅上有規律(對於聲音的理解不深希望指正)。而對於完備的語言,要通過若干音的組合表達各種各樣的意思,必然會形成比較複雜的發音體系,辭彙結構,語法規則。因為這種複雜的規律難以快速識別和準確掌握,所以當我們第一次聽陌生的語言,會覺得像是在聽鳥語。很可能,沒有辦法。
大家可以回想以下,自己是否曾經遇到過那種「口音太重,根本聽不懂他在說什麼」的情況呢?那麼如果以字正腔圓的中央台播音員說的話為標準,那麼口音很重的所說的話是不是漢語?你可能要說是,那麼假如這個口音很重的人現在跟你開個玩笑,在一段他的「漢語」之中夾雜一小段沒有意義的聲音,你是否能聽出來?答案是:聽懂的人能聽出來,聽不懂的人完全聽不出來。口音如同加密,「能聽懂」彷彿掌握了密鑰,能夠隨時解密出原文;但對聽不懂的人來說,又好像是亂碼,完全沒有規律。拿到密鑰之前,人都覺得「這都神馬玩意兒啊!」,但是拿到密鑰之後,人又覺得「這不很明顯嗎?」。
給大家直觀地看一個「拿到密鑰」之前和之後的例子。先看這三幅圖:圖中分別是什麼東西?
(怎麼樣?一頭霧水吧?再多看一會兒試試?)
.
.
.
.
.
.
.
.
.
.
.
.
(怎麼樣?)
.
.
.
.
.
.
.
.
.
.
.
(還不確定?要不要再看看?)
.
.
.
.
.
.
.
.
.
.
(再看看?)
.
.
.
.
.
.
.
.
.
.
.
(有確定的答案了?)
.
.
.
.
.
.
.
.
.
.
.
.
(還改不?)
.
.
.
.
.
.
.
.
.
.
放棄了?現在把密鑰給你:
你只需要大概掃幾眼,再翻回去看之前的圖,現在是不是覺得答案很明顯了?
按照我的理解,題主想問的應該是自然語言[1],所以我對原題提交了修改。
我認為目前最高票答案如何判斷一段聲音是不是自然語言?只是給出了利用信號自相關性判斷這段音頻是不是雜訊,是否包含信息,沒有針對問題。
%%%%%%%---------------開始答題---------------%%%%%%%%%%%%%%%
針對原題,能否實現判斷這段聲音實不是自然語言,答案如下:
理論上完全可行,已經部分實現
現代的自然語言處理 (Natural language
processing)[2]是的一種機器學習,是人工智慧的組成部分之一。 最廣泛應用的就是語音識別 (Speech
Recognition)[3],語音識別的原理請首先參看語音識別的技術原理是什麼。(已經邀請這位專業人士@張俊博 來答題,不知道這樣@ 能不能表明誠意啊)
大概讀懂上面那個問題之後,可以繼續往下看,語音有兩個重要組成部分。
第一,演算法
隨機信號處理和模式識別是基礎,當然往深的說應該是綜合性的交叉學科---機器學習
除了那篇答案提到的基於隱含馬爾可夫模型(Hidden Markov Model)的主流方法,最近基於80年代神經網路的深度學習(Deep Learning)也是一個熱門[4],谷歌的語音識別得以大幅提高也歸功於攏集了大量的深度學習方面的專家。
不過,針對本題,演算法不是實現難點,且答主入門尚淺,就再深入討論現眼了。往下看
第二,音素集(Pronouncing Dictionary)語料庫(Text Corpus)
語料庫用以建立HMM,音素集用於對比尋找到對應的可能性最大的單詞。
按照自然語言的定義,世界上有多少種語言?List of indigenous language names
那列表中的語言都應該包含在自然語言範圍之內,要想實現判斷一段音頻是不是自然語言,首先需要假設這段音頻中包含自然語言信息,且不知道自然語言的種類或者可能範圍。然後運用演算法對照所有可能的自然語言,若包含自然語言信息,那通過語音識別就能得出對應的演算法中概率最大的文本。由此可以判斷音頻包含自然語言。反之,若未找到
至此,
- 識別過程要調用所有自然語言的語料庫和音素庫,對於尚未建立的語料庫和音素集更需要語言學家投入時間和精力,且有些非廣泛使用的語言是否需要建立對應的database也是有待討論的。
- 以Siri為例,現在支持的語言種類,英法德意日西中韓[5],還不是所有語種,且識別是在指定語言的情況下進行的,這樣就降低了識別的難度和成本。在未知語種的情況下進行識別,準確度和識別速度就是很大問題了。
- 現有的語音識別系統對貓狗等動物發出的聲音(看作是動物語言)和環境雜訊不作出響應或者判斷為無效輸入,這點其實已經實現了部分功能。為什麼說是部分功能呢,因為你找一個說著非洲部落語言的土著人來試試,肯定識別不出來,但人家說的也是自然語言啊。
%%%%%---------------回答部分結束------------------%%%%%%%%%%
個人對本題看法,在交互的過程中,機器人能夠對非自然語言(環境雜訊,動物的語言等等)和自然語言進行判別,即對非自然語言不響應,同時準確識別任何一種自然語言的信息與人類進行交流,所以這個問題也正是人工智慧領域的未來需要解決的。
我只是準備在此領域寫研究生論文的在讀碩士一名 ,歡迎建議意見以及真誠討論,望輕噴。
[1] Natural language
[2]Natural language processing
[3] Speech recognition(此條目的德文為優秀條目 Spracherkennung Wikipedia)
[4] 再說深度學習,重燃人工智慧領域的重大挑戰
[5] Siri
看到了 @伊思 的答案很受啟發,特感謝一下。
看到了各位的答案突然注意到體主提到的足夠長,本人通信小碩。在通信的信號檢測中有一種方式就是循環平穩檢測,其原理就是所有的信息一定是有一定周期的,在足夠長的時間內,所以在認知無線電中可以利用這個原理檢測是否有用戶的存在。(這個其實不是我的研究內容,所以應該講的不太嚴謹)
所以同樣的,在足夠長的聲音里,利用循環平穩檢測,也就是能夠檢測到一平穩信號,那麼一定是存在用戶的,也就是說,這顯然是一種交流方式——語言。看到題主自己的答案,其實題主很明白問題的核心了。語言有模式,即語言可以被形式化地定義,所以
基於題主給的聲音足夠長這個條件,識別出是語言是沒問題的,但是,要正確解讀出這段語言"搭載"的信息,即外星人所要表達的意思,恐怕光有這段聲音是不夠的。
數學中抽象出"語言"這個概念的核心。那就是
1.給定元素個數可數的"字母表"。
2.給定組成"單詞"的構詞法,同樣,法則條數要可數。
3.給定基本的"句子",還有可數個"句子"生成法則。
舉個例子。
1.26個阿拉伯字母(有限個數的字母表)。
2.有限個數的字母相連即是單詞(有限條數的構詞規則,一條)。
3.①每個單詞就是一個句子②單詞+謂詞(字母個數長度為37的單詞)+單詞 也是合法句子③句子+逗號(,)+句子 也是合法句子(①是基本的句子,後兩條是生成法則)。
用這個例子,我們就造出和英語相似的一個"語言"!
至於這個語言的意義,我們還沒附加,比如我們把每個單詞映射為現實中一個食物,謂詞映射為"融化"這個動作。那麼,我們就給"語言"賦予了意義。當然,我舉的這個意義很無趣,你可以發揮想像。重要的是,意義是附加的,非本質於語言這個觀點。
有了上面的鋪墊,可以回答題主問題了。
地球人收到這段語音,以什麼形式呢?不重要,但很可能是一段外星人精心調製的電磁波。
地球人收到後,會把電磁波轉換為他們的理解的一種形式,比如,二進位。
現在,地球人面對足夠長的一段二進位序列。足夠長非常非常重要,因為,只要基於統計學上的統計分析,就發現其中蘊含固定序列(大樣本更利於顯現出模式,就是這麼個簡單的道理),並且序列中具有某些固定的小粒度的組合。
那麼,地球人中的數學家會把這些小粒度的組合定義為"單詞",有了他們"單詞",他們能分析出"單詞"的組合原則,即構句(同樣基於大樣本易於顯現模式這個道理)。
總之,地球人最後成功從中搗鼓出一種語言的構造方法,並且那就是外星人所使用的語言(當然,地球人用字母表,外星人用的字母表可能是化學元素orz...)。
現在,地球人要分析這語言中要表達的含義。但可惜,含義不是本質的,這段單純的語音無法勝任解讀含義這個任務。必須求助於這個"系統"外的信息,來輔助解讀。地球人自以為這段語音就表示這個意思,但天知道外星人想表達的是意義自恰的合乎他們邏輯的另一種意思。
所以,外星人還必須增加一些信息,比如一個外星球模型,上面印有「外星」這個單詞的電磁波形(假設他們有視覺?▂?),等等等等。
新手第一答
語言的發音是有規律的,比如多個音節重複(就像這段話有很多de一樣),還有語氣的轉變等等,其實這個問題 挺沒有意義的,問題的目的應該是判斷外星生物的存在,而題中的限制是我們收到了一段音頻,既然都能發音頻了,那應該能斷定是不亞於人類的智能生物了吧。。。
這是一個巨大的問題。
隨便扯倆句,我個人理解,大概可以分為倆部分。
1)判斷聲音是否為人聲。
這個我不是很清楚,關於人聲的特徵,也是多種多樣,不同年齡,性別,體重,都會有不同的特徵。例如低齡,聲音的基頻(假設narrowband)是普遍高於高齡的。
至於上面提到的自相關,其實也是一個比較薄弱的特徵。autocorrelation 只能證明是非白噪。
例如我隨手截取的一段新聞語音,因為包含了一定的噪音,所以出現的xcorr就是如下了
但從這段聲音中,可以很清晰的聽到的新聞播報聲音。
2)自然語言
根據Shannon的「信息熵」公式,如果信息量越大,H的數值越大。但這只是判斷信息量的多少,並不能判斷是否為自然語言。
假設A和B對話,B對A說「明天太陽會升起。」
對於A來說,這段話沒有任何意義,因為「太陽升起」是一個常識。(世界末日除外)
所以對於A而言,信息量為0。但是「明天太陽會升起。」這的確是自然語言。現在使用的聲音識別(包括機器翻譯),都是以概率論(貝葉斯理論)為基礎。
所以,我覺得在判斷是否是自然語言時,也可以同樣使用。
但這裡有一個問題,如果是一段我們未知的自然語言。例如少數民族語言,如何判斷,這應該也是一個問題。
推薦閱讀: