
作者 | David Amos
編譯 | 廉潔
來源 | AI科技大本營(yíng)
亞馬遜的 Alexa 的巨大成功已經(jīng)證明:在不遠(yuǎn)的將來,實(shí)現(xiàn)一定程度上的語(yǔ)音支持將成為日??萍嫉幕疽?。整合了語(yǔ)音識(shí)別的 Python 程序提供了其他技術(shù)無法比擬的交互性和可訪問性。最重要的是,在 Python 程序中實(shí)現(xiàn)語(yǔ)音識(shí)別非常簡(jiǎn)單。閱讀本指南,你就將會(huì)了解。你將學(xué)到:
?語(yǔ)音識(shí)別的工作原理;
?PyPI 支持哪些軟件包;
?如何安裝和使用 SpeechRecognition 軟件包——一個(gè)功能全面且易于使用的 Python 語(yǔ)音識(shí)別庫(kù)。
▌?wù)Z言識(shí)別工作原理概述
語(yǔ)音識(shí)別源于 20 世紀(jì) 50 年代早期在貝爾實(shí)驗(yàn)室所做的研究。早期語(yǔ)音識(shí)別系統(tǒng)僅能識(shí)別單個(gè)講話者以及只有約十幾個(gè)單詞的詞匯量。現(xiàn)代語(yǔ)音識(shí)別系統(tǒng)已經(jīng)取得了很大進(jìn)步,可以識(shí)別多個(gè)講話者,并且擁有識(shí)別多種語(yǔ)言的龐大詞匯表。
語(yǔ)音識(shí)別的首要部分當(dāng)然是語(yǔ)音。通過麥克風(fēng),語(yǔ)音便從物理聲音被轉(zhuǎn)換為電信號(hào),然后通過模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)據(jù)。一旦被數(shù)字化,就可適用若干種模型,將音頻轉(zhuǎn)錄為文本。
大多數(shù)現(xiàn)代語(yǔ)音識(shí)別系統(tǒng)都依賴于隱馬爾可夫模型(HMM)。其工作原理為:語(yǔ)音信號(hào)在非常短的時(shí)間尺度上(比如 10 毫秒)可被近似為靜止過程,即一個(gè)其統(tǒng)計(jì)特性不隨時(shí)間變化的過程。
許多現(xiàn)代語(yǔ)音識(shí)別系統(tǒng)會(huì)在 HMM 識(shí)別之前使用神經(jīng)網(wǎng)絡(luò),通過特征變換和降維的技術(shù)來簡(jiǎn)化語(yǔ)音信號(hào)。也可以使用語(yǔ)音活動(dòng)檢測(cè)器(VAD)將音頻信號(hào)減少到可能僅包含語(yǔ)音的部分。
幸運(yùn)的是,對(duì)于 Python 使用者而言,一些語(yǔ)音識(shí)別服務(wù)可通過 API 在線使用,且其中大部分也提供了 Python SDK。
▌選擇 Python 語(yǔ)音識(shí)別包
PyPI中有一些現(xiàn)成的語(yǔ)音識(shí)別軟件包。其中包括:
?apiai
?google-cloud-speech
?pocketsphinx
?SpeechRcognition
?watson-developer-cloud
?wit
一些軟件包(如 wit 和 apiai )提供了一些超出基本語(yǔ)音識(shí)別的內(nèi)置功能,如識(shí)別講話者意圖的自然語(yǔ)言處理功能。其他軟件包,如谷歌云語(yǔ)音,則專注于語(yǔ)音向文本的轉(zhuǎn)換。
其中,SpeechRecognition 就因便于使用脫穎而出。
識(shí)別語(yǔ)音需要輸入音頻,而在 SpeechRecognition 中檢索音頻輸入是非常簡(jiǎn)單的,它無需構(gòu)建訪問麥克風(fēng)和從頭開始處理音頻文件的腳本,只需幾分鐘即可自動(dòng)完成檢索并運(yùn)行。
SpeechRecognition 庫(kù)可滿足幾種主流語(yǔ)音 API ,因此靈活性極高。其中 Google Web Speech API 支持硬編碼到 SpeechRecognition 庫(kù)中的默認(rèn) API 密鑰,無需注冊(cè)就可使用。SpeechRecognition 以其靈活性和易用性成為編寫 Python 程序的最佳選擇。
▌安裝 SpeechRecognation
SpeechRecognition 兼容 Python2.6 , 2.7 和 3.3+,但若在 Python 2 中使用還需要一些額外的安裝步驟。本教程中所有開發(fā)版本默認(rèn) Python 3.3+。
讀者可使用 pip 命令從終端安裝 SpeechRecognition:
$ pip install SpeechRecognition
安裝完成后請(qǐng)打開解釋器窗口并輸入以下內(nèi)容來驗(yàn)證安裝:
>>> import speech_recognition as sr >>> sr.__version__ '3.8.1'
注:不要關(guān)閉此會(huì)話,在后幾個(gè)步驟中你將要使用它。
若處理現(xiàn)有的音頻文件,只需直接調(diào)用 SpeechRecognition ,注意具體的用例的一些依賴關(guān)系。同時(shí)注意,安裝 PyAudio 包來獲取麥克風(fēng)輸入。
▌識(shí)別器類
SpeechRecognition 的核心就是識(shí)別器類。
Recognizer API 主要目是識(shí)別語(yǔ)音,每個(gè) API 都有多種設(shè)置和功能來識(shí)別音頻源的語(yǔ)音,分別是:
以上七個(gè)中只有 recognition_sphinx()可與CMU Sphinx 引擎脫機(jī)工作, 其他六個(gè)都需要連接互聯(lián)網(wǎng)。
SpeechRecognition 附帶 Google Web Speech API 的默認(rèn) API 密鑰,可直接使用它。其他六個(gè) API 都需要使用 API 密鑰或用戶名/密碼組合進(jìn)行身份驗(yàn)證,因此本文使用了 Web Speech API。
現(xiàn)在開始著手實(shí)踐,在解釋器會(huì)話中調(diào)用 recognise_google()函數(shù)。
>>> r.recognize_google()
屏幕會(huì)出現(xiàn):
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
相信你已經(jīng)猜到了結(jié)果,怎么可能從空文件中識(shí)別出數(shù)據(jù)呢?
這 7 個(gè) recognize_*() 識(shí)別器類都需要輸入 audio_data 參數(shù),且每種識(shí)別器的 audio_data 都必須是 SpeechRecognition 的 AudioData 類的實(shí)例。
AudioData 實(shí)例的創(chuàng)建有兩種路徑:音頻文件或由麥克風(fēng)錄制的音頻,先從比較容易上手的音頻文件開始。
▌音頻文件的使用
首先需要下載音頻文件(https://github.com/realpython/python-speech-recognition/tree/master/audio_files),保存到 Python 解釋器會(huì)話所在的目錄中。
AudioFile 類可以通過音頻文件的路徑進(jìn)行初始化,并提供用于讀取和處理文件內(nèi)容的上下文管理器界面。
支持文件類型
SpeechRecognition 目前支持的文件類型有:
若是使用 Linux 系統(tǒng)下的 x-86 ,macOS 或者是 Windows 系統(tǒng),需要支持 FLAC文件。若在其它系統(tǒng)下運(yùn)行,需要安裝 FLAC 編碼器并確??梢栽L問 flac 命令。
使用 record() 從文件中獲取數(shù)據(jù)
在解釋器會(huì)話框鍵入以下命令來處理 “harvard.wav” 文件的內(nèi)容:
>>> harvard = sr.AudioFile('harvard.wav') >>> with harvard as source: ... audio = r.record(source) ...
通過上下文管理器打開文件并讀取文件內(nèi)容,并將數(shù)據(jù)存儲(chǔ)在 AudioFile 實(shí)例中,然后通過 record()將整個(gè)文件中的數(shù)據(jù)記錄到 AudioData 實(shí)例中,可通過檢查音頻類型來確認(rèn):
>>> type(audio) <class 'speech_recognition.AudioData'>
現(xiàn)在可以調(diào)用 recognition_google()來嘗試識(shí)別音頻中的語(yǔ)音。
>>> r.recognize_google(audio) 'the stale smell of old beer lingers it takes heat to bring out the odor a cold dip restores health and zest a salt pickle taste fine with ham tacos al Pastore are my favorite a zestful food is the hot cross bun'
以上就完成了第一個(gè)音頻文件的錄制。
利用偏移量和持續(xù)時(shí)間獲取音頻片段
若只想捕捉文件中部分演講內(nèi)容該怎么辦?record() 命令中有一個(gè) duration 關(guān)鍵字參數(shù),可使得該命令在指定的秒數(shù)后停止記錄。
例如,以下內(nèi)容僅獲取文件前四秒內(nèi)的語(yǔ)音:
>>> with harvard as source: ... audio = r.record(source, duration=4) ... >>> r.recognize_google(audio) 'the stale smell of old beer lingers'
在with塊中調(diào)用record() 命令時(shí),文件流會(huì)向前移動(dòng)。這意味著若先錄制四秒鐘,再錄制四秒鐘,則第一個(gè)四秒后將返回第二個(gè)四秒鐘的音頻。
>>> with harvard as source: ... audio1 = r.record(source, duration=4) ... audio2 = r.record(source, duration=4) ... >>> r.recognize_google(audio1) 'the stale smell of old beer lingers' >>> r.recognize_google(audio2) 'it takes heat to bring out the odor a cold dip'
除了指定記錄持續(xù)時(shí)間之外,還可以使用 offset 參數(shù)為 record() 命令指定起點(diǎn),其值表示在開始記錄的時(shí)間。如:僅獲取文件中的第二個(gè)短語(yǔ),可設(shè)置 4 秒的偏移量并記錄 3 秒的持續(xù)時(shí)間。
>>> with harvard as source: ... audio = r.record(source, offset=4, duration=3) ... >>> recognizer.recognize_google(audio) 'it takes heat to bring out the odor'
在事先知道文件中語(yǔ)音結(jié)構(gòu)的情況下,offset 和 duration 關(guān)鍵字參數(shù)對(duì)于分割音頻文件非常有用。但使用不準(zhǔn)確會(huì)導(dǎo)致轉(zhuǎn)錄不佳。
>>> with harvard as source: ... audio = r.record(source, offset=4.7, duration=2.8) ... >>> recognizer.recognize_google(audio) 'Mesquite to bring out the odor Aiko'
本程序從第 4.7 秒開始記錄,從而使得詞組 “it takes heat to bring out the odor” ,中的 “it t” 沒有被記錄下來,此時(shí) API 只得到 “akes heat” 這個(gè)輸入,而與之匹配的是 “Mesquite” 這個(gè)結(jié)果。
同樣的,在獲取錄音結(jié)尾詞組 “a cold dip restores health and zest” 時(shí) API 僅僅捕獲了 “a co” ,從而被錯(cuò)誤匹配為 “Aiko” 。
噪音也是影響翻譯準(zhǔn)確度的一大元兇。上面的例子中由于音頻文件干凈從而運(yùn)行良好,但在現(xiàn)實(shí)中,除非事先對(duì)音頻文件進(jìn)行處理,否則不可能得到無噪聲音頻。
噪聲對(duì)語(yǔ)音識(shí)別的影響
噪聲在現(xiàn)實(shí)世界中確實(shí)存在,所有錄音都有一定程度的噪聲,而未經(jīng)處理的噪音可能會(huì)破壞語(yǔ)音識(shí)別應(yīng)用程序的準(zhǔn)確性。
要了解噪聲如何影響語(yǔ)音識(shí)別,請(qǐng)下載 “jackhammer.wav” (https://github.com/realpython/python-speech-recognition/tree/master/audio_files)文件,并確保將其保存到解釋器會(huì)話的工作目錄中。文件中短語(yǔ) “the stale smell of old beer lingers” 在是很大鉆墻聲的背景音中被念出來。
嘗試轉(zhuǎn)錄此文件時(shí)會(huì)發(fā)生什么?
>>> jackhammer = sr.AudioFile('jackhammer.wav') >>> with jackhammer as source: ... audio = r.record(source) ... >>> r.recognize_google(audio) 'the snail smell of old gear vendors'
那么該如何處理這個(gè)問題呢?可以嘗試調(diào)用 Recognizer 類的adjust_for_ambient_noise()命令。
>>> with jackhammer as source: ... r.adjust_for_ambient_noise(source) ... audio = r.record(source) ... >>> r.recognize_google(audio) 'still smell of old beer vendors'
這樣就與準(zhǔn)確結(jié)果接近多了,但精確度依然存在問題,而且詞組開頭的 “the” 被丟失了,這是什么原因呢?
因?yàn)槭褂?adjust_for_ambient_noise()命令時(shí),默認(rèn)將文件流的第一秒識(shí)別為音頻的噪聲級(jí)別,因此在使用 record()獲取數(shù)據(jù)前,文件的第一秒已經(jīng)被消耗了。
可使用duration關(guān)鍵字參數(shù)來調(diào)整adjust_for_ambient_noise()命令的時(shí)間分析范圍,該參數(shù)單位為秒,默認(rèn)為 1,現(xiàn)將此值降低到 0.5。
>>> with jackhammer as source: ... r.adjust_for_ambient_noise(source, duration=0.5) ... audio = r.record(source) ... >>> r.recognize_google(audio) 'the snail smell like old Beer Mongers'
現(xiàn)在我們就得到了這句話的 “the”,但現(xiàn)在出現(xiàn)了一些新的問題——有時(shí)因?yàn)樾盘?hào)太吵,無法消除噪音的影響。
若經(jīng)常遇到這些問題,則需要對(duì)音頻進(jìn)行一些預(yù)處理??梢酝ㄟ^音頻編輯軟件,或?qū)V鏡應(yīng)用于文件的 Python 包(例如SciPy)中來進(jìn)行該預(yù)處理。處理嘈雜的文件時(shí),可以通過查看實(shí)際的 API 響應(yīng)來提高準(zhǔn)確性。大多數(shù) API 返回一個(gè)包含多個(gè)可能轉(zhuǎn)錄的 JSON 字符串,但若不強(qiáng)制要求給出完整響應(yīng)時(shí),recognition_google()方法始終僅返回最可能的轉(zhuǎn)錄字符。
通過把 recognition_google()中 True 參數(shù)改成 show_all 來給出完整響應(yīng)。
>>> r.recognize_google(audio, show_all=True) {'alternative': [ {'transcript': 'the snail smell like old Beer Mongers'}, {'transcript': 'the still smell of old beer vendors'}, {'transcript': 'the snail smell like old beer vendors'}, {'transcript': 'the stale smell of old beer vendors'}, {'transcript': 'the snail smell like old beermongers'}, {'transcript': 'destihl smell of old beer vendors'}, {'transcript': 'the still smell like old beer vendors'}, {'transcript': 'bastille smell of old beer vendors'}, {'transcript': 'the still smell like old beermongers'}, {'transcript': 'the still smell of old beer venders'}, {'transcript': 'the still smelling old beer vendors'}, {'transcript': 'musty smell of old beer vendors'}, {'transcript': 'the still smell of old beer vendor'} ], 'final': True}
可以看到,recognition_google()返回了一個(gè)關(guān)鍵字為 'alternative' 的列表,指的是所有可能的響應(yīng)列表。此響應(yīng)列表結(jié)構(gòu)會(huì)因 API 而異且主要用于對(duì)結(jié)果進(jìn)行調(diào)試。
▌麥克風(fēng)的使用
若要使用 SpeechRecognizer 訪問麥克風(fēng)則必須安裝 PyAudio 軟件包,請(qǐng)關(guān)閉當(dāng)前的解釋器窗口,進(jìn)行以下操作:
安裝 PyAudio
安裝 PyAudio 的過程會(huì)因操作系統(tǒng)而異。
Debian Linux
如果使用的是基于 Debian的Linux(如 Ubuntu ),則可使用 apt 安裝 PyAudio:
$ sudo apt-get install python-pyaudio python3-pyaudio
安裝完成后可能仍需要啟用 pip install pyaudio ,尤其是在虛擬情況下運(yùn)行。
macOS
macOS 用戶則首先需要使用 Homebrew 來安裝 PortAudio,然后調(diào)用 pip 命令來安裝 PyAudio。
$ brew install portaudio $ pip install pyaudio
Windows
Windows 用戶可直接調(diào)用 pip 來安裝 PyAudio。
$ pip install pyaudio
安裝測(cè)試
安裝了 PyAudio 后可從控制臺(tái)進(jìn)行安裝測(cè)試。
$ python -m speech_recognition
請(qǐng)確保默認(rèn)麥克風(fēng)打開并取消靜音,若安裝正常則應(yīng)該看到如下所示的內(nèi)容:
A moment of silence, please... Set minimum energy threshold to 600.4452854381937 Say something!
請(qǐng)對(duì)著麥克風(fēng)講話并觀察 SpeechRecognition 如何轉(zhuǎn)錄你的講話。
Microphone 類
請(qǐng)打開另一個(gè)解釋器會(huì)話,并創(chuàng)建識(shí)一個(gè)別器類的例子。
>>> import speech_recognition as sr >>> r = sr.Recognizer()
此時(shí)將使用默認(rèn)系統(tǒng)麥克風(fēng),而不是使用音頻文件作為信號(hào)源。讀者可通過創(chuàng)建一個(gè)Microphone 類的實(shí)例來訪問它。
>>> mic = sr.Microphone()
若系統(tǒng)沒有默認(rèn)麥克風(fēng)(如在 RaspberryPi 上)或想要使用非默認(rèn)麥克風(fēng),則需要通過提供設(shè)備索引來指定要使用的麥克風(fēng)。讀者可通過調(diào)用 Microphone 類的list_microphone_names()函數(shù)來獲取麥克風(fēng)名稱列表。
>>> sr.Microphone.list_microphone_names() ['HDA Intel PCH: ALC272 Analog (hw:0,0)', 'HDA Intel PCH: HDMI 0 (hw:0,3)', 'sysdefault', 'front', 'surround40', 'surround51', 'surround71', 'hdmi', 'pulse', 'dmix', 'default']
注意:你的輸出可能與上例不同。
list_microphone_names()返回列表中麥克風(fēng)設(shè)備名稱的索引。在上面的輸出中,如果要使用名為 “front” 的麥克風(fēng),該麥克風(fēng)在列表中索引為 3,則可以創(chuàng)建如下所示的麥克風(fēng)實(shí)例:
>>> # This is just an example; do not run >>> mic = sr.Microphone(device_index=3)
但大多數(shù)情況下需要使用系統(tǒng)默認(rèn)麥克風(fēng)。
使用 listen()獲取麥克風(fēng)輸入數(shù)據(jù)
準(zhǔn)備好麥克風(fēng)實(shí)例后,讀者可以捕獲一些輸入。
就像 AudioFile 類一樣,Microphone 是一個(gè)上下文管理器??梢允褂?with 塊中 Recognizer 類的 listen()方法捕獲麥克風(fēng)的輸入。該方法將音頻源作為第一個(gè)參數(shù),并自動(dòng)記錄來自源的輸入,直到檢測(cè)到靜音時(shí)自動(dòng)停止。
>>> with mic as source: ... audio = r.listen(source) ...
執(zhí)行 with 塊后請(qǐng)嘗試在麥克風(fēng)中說出 “hello” 。請(qǐng)等待解釋器再次顯示提示,一旦出現(xiàn) “>>>” 提示返回就可以識(shí)別語(yǔ)音。
>>> r.recognize_google(audio) 'hello'
如果沒有提示再次返回,可能是因?yàn)辂溈孙L(fēng)收到太多的環(huán)境噪音,請(qǐng)使用 Ctrl + C 中斷這個(gè)過程,從而讓解釋器再次顯示提示。
要處理環(huán)境噪聲,可調(diào)用 Recognizer 類的 adjust_for_ambient_noise()函數(shù),其操作與處理噪音音頻文件時(shí)一樣。由于麥克風(fēng)輸入聲音的可預(yù)測(cè)性不如音頻文件,因此任何時(shí)間聽麥克風(fēng)輸入時(shí)都可以使用此過程進(jìn)行處理。
>>> with mic as source: ... r.adjust_for_ambient_noise(source) ... audio = r.listen(source) ...
運(yùn)行上面的代碼后稍等片刻,嘗試在麥克風(fēng)中說 “hello” 。同樣,必須等待解釋器提示返回后再嘗試識(shí)別語(yǔ)音。
請(qǐng)記住,adjust_for_ambient_noise()默認(rèn)分析音頻源中1秒鐘長(zhǎng)的音頻。若讀者認(rèn)為此時(shí)間太長(zhǎng),可用duration參數(shù)來調(diào)整。
SpeechRecognition 資料建議 duration 參數(shù)不少于0.5秒。某些情況下,你可能會(huì)發(fā)現(xiàn),持續(xù)時(shí)間超過默認(rèn)的一秒會(huì)產(chǎn)生更好的結(jié)果。您所需要的最小值取決于麥克風(fēng)所處的周圍環(huán)境,不過,這些信息在開發(fā)過程中通常是未知的。根據(jù)我的經(jīng)驗(yàn),一秒鐘的默認(rèn)持續(xù)時(shí)間對(duì)于大多數(shù)應(yīng)用程序已經(jīng)足夠。
處理難以識(shí)別的語(yǔ)音
嘗試將前面的代碼示例輸入到解釋器中,并在麥克風(fēng)中輸入一些無法理解的噪音。你應(yīng)該得到這樣的結(jié)果:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/david/real_python/speech_recognition_primer/venv/lib/python3.5/site-packages/speech_recognition/__init__.py", line 858, in recognize_google if not isinstance(actual_result, dict) or len(actual_result.get("alternative", [])) == 0: raise UnknownValueError() speech_recognition.UnknownValueError
無法被 API 匹配成文字的音頻會(huì)引發(fā) UnknownValueError 異常,因此要頻繁使用 try 和 except 塊來解決此類問題。API 會(huì)盡全力去把任何聲音轉(zhuǎn)成文字,如短咕嚕聲可能會(huì)被識(shí)別為 “How”,咳嗽聲、鼓掌聲以及舌頭咔噠聲都可能會(huì)被轉(zhuǎn)成文字從而引起異常。
結(jié)語(yǔ):
本教程中,我們一直在識(shí)別英語(yǔ)語(yǔ)音,英語(yǔ)是 SpeechRecognition 軟件包中每個(gè)recognition _ *()方法的默認(rèn)語(yǔ)言。但是,識(shí)別其他語(yǔ)音也是絕對(duì)有可能且很容易完成的。要識(shí)別不同語(yǔ)言的語(yǔ)音,請(qǐng)將 recognition _ *()方法的語(yǔ)言關(guān)鍵字參數(shù)設(shè)置為與所需語(yǔ)言對(duì)應(yīng)的字符串。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03