国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

語(yǔ)音識(shí)別入門(mén)——常用軟件及python運(yùn)用

這篇具有很好參考價(jià)值的文章主要介紹了語(yǔ)音識(shí)別入門(mén)——常用軟件及python運(yùn)用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

工具以及使用到的庫(kù)

  • ffmpeg
  • sox
  • audacity
  • pydub
  • scipy
  • librosa
  • pyAudioAnalysis
  • plotly

本文分為兩個(gè)部分:

P1如何使用ffmpeg和sox處理音頻文件
P2如何編程處理音頻文件并執(zhí)行基本處理


P1 處理語(yǔ)音數(shù)據(jù)——命令行方式


格式轉(zhuǎn)換

ffmpeg -i video.mkv audio.mp3

使用ffmpeg將輸入mkv文件轉(zhuǎn)為mp3文件


降采樣、通道轉(zhuǎn)換

ffmpeg -i audio.wav -ar 16000 -ac 1 audio_16K_mono.wav
  • ar:聲頻采樣率(audio rate)
  • ac:聲頻通道(audio channel)
    此處是將原來(lái)44.1kHz的雙通道wav文件轉(zhuǎn)為單通道wav文件

獲取音頻信息

ffmpeg -i audio_16K_mono.wav

將得到

Input #0, wav, from ‘a(chǎn)udio_16K_mono.wav’:
Metadata:
encoder : Lavf57.71.100
Duration: 00:03:10.29, bitrate: 256 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz,
mono, s16, 256 kb/s
  • #0表示只有一個(gè)通道
  • encoder:為libavformat支持的一種容器
  • Duration:時(shí)長(zhǎng)
  • bitrate:比特率256kb/s,表示音頻每秒傳輸?shù)臄?shù)據(jù)量,高質(zhì)量音頻一般比較大
  • Stram:流
  • #0:0:?jiǎn)瓮ǖ?/li>
  • pcm_s16le:
    • pcm(脈沖編碼調(diào)制,pulse-code modulation)
    • signed integer 16:(16位有符號(hào)整型)格式采樣
    • le表示小端(little endian),高位數(shù)據(jù)存地址高位,地位數(shù)據(jù)存地址地位,有如[1][0][0][0] / 0x0001。
  • mono:?jiǎn)瓮ǖ?/li>

小插曲

最近看到一道數(shù)據(jù)類(lèi)型題
題目:為什么float類(lèi)型 ( 1 e 10 + 3.14 ) ? 1 e 10 = 0 ? \mathbf{(1e10+3.14)-1e10=0?} (1e10+3.14)?1e10=0?
解題如下:
1 e 10 \mathbf{1e10} 1e10二進(jìn)制表示為:
001 0 ′ 010 1 ′ 010 0 ′ 000 0 ′ 101 1 ′ 111 0 ′ 010 0 ′ 000 0 ′ 0000 \mathbf{0010'0101'0100'0000'1011'1110'0100'0000'0000} 001001010100000010111110010000000000
或者表示為
1.001 0 ′ 101 0 ′ 000 0 ′ 010 1 ′ 111 1 ′ 001 0 ′ 000 0 ′ 000 0 ′ 0 2 ? 2 33 \mathbf{1.0010'1010'0000'0101'1111'0010'0000'0000'0_2*2^{33}} 1.0010101000000101111100100000000002??233

浮點(diǎn)數(shù)三要素

  • 首位:0表示正數(shù),1表示負(fù)數(shù)
  • 中間位,8位,為科學(xué)計(jì)數(shù)法指數(shù)部分,上例為33與偏置量(127)的和,此例為160,二進(jìn)制為1010’0000
  • 尾部:23位,二進(jìn)制表示的小數(shù)部分的前23位,此例為0010’1010’0000’0101’1111’001
    1 e 10 \mathbf{1e10} 1e10的浮點(diǎn)數(shù)為:
    0 ′ 101 0 ′ 000 0 ′ 001 0 ′ 101 0 ′ 000 0 ′ 010 1 ′ 111 1 ′ 001 \mathbf{0'1010'0000'0010'1010'0000'0101'1111'001} 01010000000101010000001011111001
    到此為止,可知舍去了科學(xué)計(jì)數(shù)法中小數(shù)部分的后10位

小數(shù)的二進(jìn)制表示兩個(gè)要素

  • 整數(shù)部分:正常表示,3.14整數(shù)部分為0011
  • 小數(shù)部分:乘以2取整數(shù)部分,
    • 0.14*2=0.28 取0
    • 0.28*2=0.56 取0
    • 0.56*2=1.12 取1
    • 0.12*2=0.24 取0
    • 0.24*2=0.48 取0
    • 0.48*2=0.96 取0
    • 0.96*2=1.92 取1

3.14的二進(jìn)制表示為:
11.0010001... \mathbf{11.0010001...} 11.0010001...
綜上, 1 e 10 + 3.14 \mathbf{1e10+3.14} 1e10+3.14的二進(jìn)制表示為:
1.001 0 ′ 101 0 ′ 000 0 ′ 010 1 ′ 111 1 ′ 001 0 ′ 000 0 ′ 000 1 ′ 1001 ’ 000 1 2 ? 2 33 \mathbf{1.0010'1010'0000'0101'1111'0010'0000'0001'1001’0001_2*2^{33}} 1.001010100000010111110010000000011001’00012??233
轉(zhuǎn)為浮點(diǎn)數(shù),為
0 ′ 101 0 ′ 000 0 ′ 001 0 ′ 101 0 ′ 000 0 ′ 010 1 ′ 111 1 ′ 001 \mathbf{0'1010'0000'0010'1010'0000'0101'1111'001} 01010000000101010000001011111001
1 e 10 \mathbf{1e10} 1e10一樣,故float類(lèi)型 ( 1 e 10 + 3.14 ) ? 1 e 10 = 0 \mathbf{(1e10+3.14)-1e10}=0 (1e10+3.14)?1e10=0


修剪音頻

ffmpeg -i audio.wav -ss 60 -t 20 audio_small.wav
  • i:輸入音頻audio.wav
  • ss: 截取起始秒
  • t:截取段時(shí)長(zhǎng)
  • audio_small.wav:輸出文件

串聯(lián)視頻

新建一個(gè)list_of_files_to_concat的txt文檔,內(nèi)容如下:

file 'file1.wav'
file 'file2.wav'
file 'file3.wav'

采用以下命令行,可將三個(gè)文件串聯(lián)輸出,編碼方式為復(fù)制

ffmpeg -f concat -i list_of_files_to_concat -c copy output.wav

分割視頻

以下命令行將輸入視頻分割為1s一個(gè)

ffmpeg -i output.wav -f segment -segment_time 1 -c copy out%05d.wav

交換聲道

ffmpeg -i stereo.wav -map_channel 0.0.1 -map_channel 0.0.0 stereo_inverted.wav
  • 0.0.1輸入文件音頻流右聲道
  • 0.0.0輸入文件音頻流左聲道

合并聲道

ffmpeg -i left.wav -i right.wav -filter_complex "[0:a][1:a]join=inputs=2:channel_layout=stereo[a]" -map "[a]" mix_channels.wav
  • filter_complex:復(fù)雜音頻濾波器圖
  • [0:a],[1:a]:第一個(gè)和第二個(gè)文件的音頻流
  • join=inputs=2:表示兩個(gè)輸入流混合
  • channel_layout=stereo:混合后輸出為立體聲
  • [a]:輸出音頻流標(biāo)簽
  • map ”[a]":將‘[a]'標(biāo)簽的音頻流映射到輸出文件

分割立體聲音頻為左右單聲道文件

ffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav
  • map_channel 0.0.0:將左聲道映射到第一個(gè)輸出文件
  • map_channel 0.0.1:將右聲道映射到第二個(gè)輸出文件

將某個(gè)聲道靜音

ffmpeg -i stereo.wav -map_channel -1 -map_channel 0.0.1 muted.wav
  • map_channel -1:忽略某聲道
  • map_channel 0.0.1:將右聲道映射到輸出文件

音量調(diào)節(jié)

ffmpeg -i data/music_44100.wav -filter:a “volume=0.5” data/music_44100_volume_50.wav
ffmpeg -i data/music_44100.wav -filter:a “volume=2.0” data/music_44100_volume_200.wav
  • filter:a:使用音頻過(guò)濾器
  • “volume=0.5”:將音頻音量變?yōu)樵瓉?lái)一半
  • “volume=2”:將音頻音量變?yōu)樵瓉?lái)兩倍
    python 語(yǔ)音分析工具,語(yǔ)音識(shí)別,python,人工智能
圖1 原聲,半聲,倍聲(自上而下)
由圖1可知,二倍聲出現(xiàn)削波(失真)現(xiàn)象。

sox音量調(diào)節(jié)

sox -v 0.5 data/music_44100.wav data/music_44100_volume_50_sox.wav
sox -v 2.0 data/music_44100.wav data/music_44100_volume_200_sox.wav

sox?-v?n \text{sox -v n} sox?-v?n 輸入文件路徑 輸出文件路徑

  • v n:音量調(diào)節(jié)系數(shù),n可理解為倍數(shù)。

P2 處理語(yǔ)音數(shù)據(jù)——編程方式


  • wav: scipy.io.wavfile
  • mp3:pydub

以數(shù)組形式加載音頻文件

# 以數(shù)組形式讀取wav和mp3
from pydub import AudioSegment
import numpy as np
from scipy.io import wavfile


# 用 scipy.io.wavfile 讀取wav文件
fs_wav, data_wav = wavfile.read("resampled.wav")

# 用 pydub 讀取mp3
audiofile = AudioSegment.from_file("resampled.mp3")
data_mp3 = np.array(audiofile.get_array_of_samples())
fs_mp3 = audiofile.frame_rate

print('Sq Error Between mp3 and wav data = {}'.
      format(((data_mp3 - data_wav)**2).sum()/len(data_wav)))
print('Signal Duration = {} seconds'.
      format(data_wav.shape[0] / fs_wav))
# 輸出,我使用ffmpeg將wav轉(zhuǎn)成MP3,比特率將為24kb
Sq Error Between mp3 and wav data = 3775.2859044790266
Signal Duration = 34.5513125 seconds

顯示左右聲道

import numpy as np
from scipy.io import wavfile
import matplotlib.pyplot as plt
fs,data=wavfile.read('resampled_double.wav')
time=np.arange(0,len(data))/fs
fig,axs=plt.subplots(2,1,figsize=(10,6),sharex=True)
axs[0].plot(time,data[:,0],label='Left Channel',color='blue')
axs[0].set_ylabel('Amplitude')
axs[0].legend()
axs[1].plot(time,data[:,1],label='Right Channel',color='orange')
axs[1].set_ylabel('Amplitute')
axs[1].set_xlabel('Time(seconds)')
axs[1].legend()
plt.suptitle("Stereo Audio Waveform")
plt.show()

python 語(yǔ)音分析工具,語(yǔ)音識(shí)別,python,人工智能

圖2 左右聲道展示

正則化

import matplotlib.pyplot as plt
from scipy.io import wavfile
import numpy as np
fs,data = wavfile.read("resampled_double.wav")
time=np.arange(0,len(data))/fs
plt.figure(figsize=(10,4))
plt.plot(time,data[:,0]/2^15)
plt.xlabel('Time(seconds)')
plt.ylabel('Amplitude')
plt.title('Stereo Audio Waveform')

python 語(yǔ)音分析工具,語(yǔ)音識(shí)別,python,人工智能

圖3 數(shù)據(jù)量化后的波形圖

修剪音頻

# 顯示2到4秒的波形
import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
fs,data=wavfile.read('resampled_double.wav')
time=np.arange(0,len(data[2*fs:4*fs]))/fs
plt.figure(figsize=(10,4))
plt.plot(time,data[2*fs:4*fs])
plt.xlabel('Time/s')
plt.ylabel('Amplitude')
plt.title('Stereo Audio Waveform')
plt.show()

python 語(yǔ)音分析工具,語(yǔ)音識(shí)別,python,人工智能

圖4 剪輯后音頻波形

分割為固定大小

import numpy as np
from scipy.io import wavfile
import IPython
fs,signal=wavfile.read("resampled.wav")
segment_size_t=1
segment_size=segment_size_t*fs
segments=[signal[x:x+segment_size]for x in range(0,len(signal),segment_size)]
for i,s in enumerate(segments):
	if len(s)<segment_size:
		s=np.pad(s,(0,(segment_size-len(s))),'constant')		# 這里是為了每個(gè)clip都為1s
	wavfile.write(f"resampled_segment_{i}_{i+1}.wav",fs,s)
IPython.display.display(IPython.display.Audio("resampled_segment_34_35.wav"))
# 輸出,成功輸出35個(gè)1s的wav文件

簡(jiǎn)單算法——?jiǎng)h去無(wú)聲片段

import IPython
import matplotlib.pyplot as plt
import numpy as np
energies=[((s/2**15)**2).sum()/len(s) for s in segments]	# 防止溢出
thres=np.percentile(energies,20)
indices_of_segments_to_keep=(np.where(energies>thres)[0])
segments2=np.array(segments)[indices_of_segments_to_keep]
new_signal=np.concatenate(segments2)
wavfile.write("processed_new.wav",fs,new_signal.astype(np.int16))	# 轉(zhuǎn)成int
plt.figure(figsize=(10,6))
plt.plot(energies,label="Energies",color="red")
plt.plot(np.ones(len(energies))*thres,label="Thresholds",color="blue")
plt.title("Energies VS Thresholds")
plt.legend()
plt.show()
IPython.display.display(IPython.display.Audio("processed_new.wav"))
IPython.display.display(IPython.display.Audio("resampled.wav"))

python 語(yǔ)音分析工具,語(yǔ)音識(shí)別,python,人工智能
python 語(yǔ)音分析工具,語(yǔ)音識(shí)別,python,人工智能

圖5 根據(jù)能量無(wú)聲片段的刪除及刪除后的時(shí)長(zhǎng)

往單聲道音頻中加入節(jié)拍

import numpy as np
import scipy.io.wavfile as wavfile
import librosa
import IPython
import matplotlib.pyplot as plt

# 加載文件并提取節(jié)奏和節(jié)拍:
[Fs, s] = wavfile.read('resampled.wav')
tempo, beats = librosa.beat.beat_track(y=s.astype('float'), sr=Fs, units="time")
beats -= 0.05

# 在每個(gè)節(jié)拍的第二個(gè)聲道上添加小的220Hz聲音
s = s.reshape(-1, 1)
s = np.array(np.concatenate((s, np.zeros(s.shape)), axis=1))
for ib, b in enumerate(beats):
    t = np.arange(0, 0.2, 1.0 / Fs)
    amp_mod = 0.2 / (np.sqrt(t)+0.2) - 0.2
    amp_mod[amp_mod < 0] = 0
    x = s.max() * np.cos(2 * np.pi * t * 220) * amp_mod
    s[int(Fs * b): int(Fs * b) + int(x.shape[0]), 1] = x.astype('int16')

# 寫(xiě)入一個(gè)wav文件,其中第二個(gè)聲道具有估計(jì)的節(jié)奏:
wavfile.write("tempo.wav", Fs, np.int16(s))

# 在筆記本中播放生成的文件:
IPython.display.display(IPython.display.Audio("tempo.wav"))

# 繪制波形圖
time = np.arange(0, len(s)) / Fs
fig, axs = plt.subplots(2, 1, figsize=(10, 6), sharex=True)
axs[0].plot(time, s[:, 0], label='左聲道', color='orange')
axs[0].set_ylabel('振幅')
axs[0].legend()
axs[1].plot(time, s[:, 1], label='右聲道', color='blue')
axs[1].set_xlabel("時(shí)間/秒")
axs[1].set_ylabel("振幅")
axs[1].legend()
plt.show()

python 語(yǔ)音分析工具,語(yǔ)音識(shí)別,python,人工智能python 語(yǔ)音分析工具,語(yǔ)音識(shí)別,python,人工智能

圖6 添加tempo的左右聲道及音頻

實(shí)時(shí)錄制以及頻率分析

# paura_lite:
# 一個(gè)超簡(jiǎn)單的命令行音頻錄制器,具有實(shí)時(shí)頻譜可視化

import numpy as np
import pyaudio
import struct
import scipy.fftpack as scp
import termplotlib as tpl
import os

# 獲取窗口尺寸
rows, columns = os.popen('stty size', 'r').read().split()

buff_size = 0.2          # 窗口大小(秒)
wanted_num_of_bins = 40  # 要顯示的頻率分量數(shù)量

# 初始化聲卡進(jìn)行錄制:
fs = 8000
pa = pyaudio.PyAudio()
stream = pa.open(format=pyaudio.paInt16, channels=1, rate=fs,
                 input=True, frames_per_buffer=int(fs * buff_size))

while 1:  # 對(duì)于每個(gè)錄制的窗口(直到按下Ctrl+C)
    # 獲取當(dāng)前塊并將其轉(zhuǎn)換為short整數(shù)列表,
    block = stream.read(int(fs * buff_size))
    format = "%dh" % (len(block) / 2)
    shorts = struct.unpack(format, block)

    # 然后進(jìn)行歸一化并轉(zhuǎn)換為numpy數(shù)組:
    x = np.double(list(shorts)) / (2**15)
    seg_len = len(x)

    # 獲取當(dāng)前窗口的總能量并計(jì)算歸一化因子
    # 用于可視化最大頻譜圖值
    energy = np.mean(x ** 2)
    max_energy = 0.02  # 條形設(shè)置為最大的能量
    max_width_from_energy = int((energy / max_energy) * int(columns)) + 1
    if max_width_from_energy > int(columns) - 10:
        max_width_from_energy = int(columns) - 10

    # 獲取FFT的幅度和相應(yīng)的頻率
    X = np.abs(scp.fft(x))[0:int(seg_len/2)]
    freqs = (np.arange(0, 1 + 1.0/len(X), 1.0 / len(X)) * fs / 2)

    # ... 并重新采樣為固定數(shù)量的頻率分量(用于可視化)
    wanted_step = (int(freqs.shape[0] / wanted_num_of_bins))
    freqs2 = freqs[0::wanted_step].astype('int')
    X2 = np.mean(X.reshape(-1, wanted_step), axis=1)

    # 將(頻率,F(xiàn)FT)作為水平直方圖繪制:
    fig = tpl.figure()
    fig.barh(X2, labels=[str(int(f)) + " Hz" for f in freqs2[0:-1]],
             show_vals=False, max_width=max_width_from_energy)
    fig.show()
    # 添加足夠多的新行以清除屏幕在下一次迭代中:
    print("\n" * (int(rows) - freqs2.shape[0] - 1))

python 語(yǔ)音分析工具,語(yǔ)音識(shí)別,python,人工智能文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-774390.html

圖7 實(shí)時(shí)錄制并獲取頻譜直方圖

到了這里,關(guān)于語(yǔ)音識(shí)別入門(mén)——常用軟件及python運(yùn)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python pip安裝依賴(lài)的常用軟件源:清華源、阿里源、中科大源、豆瓣源

    鏡像源就是把官方的源作為一個(gè)鏡像,你可以在這下載軟件。比如ubuntu官方源在國(guó)外,下載軟件可能會(huì)很慢,這時(shí)候就需要換成國(guó)內(nèi)的鏡像源。

    2024年02月16日
    瀏覽(48)
  • 軟件-常用軟件系統(tǒng)架構(gòu)

    ? 目錄 1.客戶(hù)端-服務(wù)器架構(gòu) 2.分布式架構(gòu) 3.微服務(wù)架構(gòu) 4.事件驅(qū)動(dòng)架構(gòu) 5.單體架構(gòu) 6.混合架構(gòu) 當(dāng)我們談?wù)撓到y(tǒng)架構(gòu)時(shí),可以將其比喻為一座房子的設(shè)計(jì)和結(jié)構(gòu),想象一下你計(jì)劃建造一座豪華別墅,你需要考慮各種因素:如房子的大小、房間的布局、功能區(qū)的劃分電力和水源

    2024年02月12日
    瀏覽(18)
  • 【資源-軟件合集】常用軟件合集收藏

    主要用于以后方便查找. 碼農(nóng)類(lèi) 虛擬機(jī)類(lèi) VMware Workstation Pro 16中文XX版v16.0.0 數(shù)據(jù)庫(kù)類(lèi) SQLite官方數(shù)據(jù)庫(kù) 編譯工具類(lèi) https://ftp.gnu.org/gnu/gcc/ https://ftp.gnu.org/pub/gnu/gcc/

    2024年01月17日
    瀏覽(25)
  • Ubuntu22常用軟件

    Ubuntu22常用軟件

    別存太多重要東西在Ubuntu ,硬盤(pán)損壞就麻煩 1.打開(kāi)Extension應(yīng)用,添加拓展。2.添加User Theme,在旁邊的Browse添加,第一個(gè)就是。3.添加Dash to Dock 參考:Ubuntu 22.04 LTS 入門(mén)安裝配置優(yōu)化、開(kāi)發(fā)軟件安裝一條龍_汝嫣兮的博客-CSDN博客 一鍵安裝 直接官網(wǎng)安裝,sudo dpkg -i 然后配置 參考

    2024年02月08日
    瀏覽(20)
  • 08-Docker安裝常用軟件

    以安裝 Mysql 5.7為例: 啟動(dòng) Mysql 容器,并配置容器卷映射: 參數(shù)說(shuō)明: -d - 后臺(tái)運(yùn)行容器并返回容器ID,即啟動(dòng)守護(hù)式容器 -p 3306:3306 - (宿主機(jī)端口 : 容器內(nèi)軟件端口)將容器的端口映射到主機(jī)的端口 -e - 為容器添加環(huán)境變量 -v 容器掛載 -name 起名 在 /app/mysql/conf 下新建 my

    2024年02月05日
    瀏覽(24)
  • 【Ubuntu】Ubuntu常用軟件部署

    【Ubuntu】Ubuntu常用軟件部署

    1.安裝jdk1.8 (1).apt方式安裝 1).安裝 1.在終端中輸入以下命令,以更新軟件包列表 2.在終端中輸入以下命令,以安裝JDK 1.8 3.將Java 1.8設(shè)置為默認(rèn)版本。在終端中輸入以下命令 終端會(huì)輸出類(lèi)似以下2種情況: 情況1: 輸入數(shù)字,以選擇Java 1.8。在我這里,我會(huì)輸入“2”。 情況2:

    2024年02月11日
    瀏覽(22)
  • FPGA開(kāi)發(fā)常用軟件的安裝

    FPGA開(kāi)發(fā)常用軟件的安裝

    ? ? ? ?這篇博客里,我們一起去安裝開(kāi)發(fā)FPGA必備的軟件包括:Vivado、Modelsim、Gvim,并附上詳細(xì)的安裝步驟和配套說(shuō)明,正常來(lái)說(shuō)安裝配置好這些軟件可能也需要花費(fèi)2-3小時(shí),所以需要大家在這里多些耐心。工欲善其事必先利其器,選擇合適版本的開(kāi)發(fā)軟件和工具,也是往后

    2023年04月08日
    瀏覽(21)
  • DebainDebain常用軟件安裝:jdk、maven、yum,更換軟件源(二)

    DebainDebain常用軟件安裝:jdk、maven、yum,更換軟件源(二)

    目錄 一、安裝sudo命令 二、安裝jdk8 三、更換軟件源 四、Debian 安裝 yum 五、安裝zip、unzip、curl、lrzsz、NUMA 六、安裝Maven 七、問(wèn)題 1) 執(zhí)行sudo命令,提示 -bash: sudo: command not found的解決方法 apt-get install sudo 如果提示 E: Unable to locate package sudo 的錯(cuò)誤,先執(zhí)行下面的命令: apt-ge

    2024年02月08日
    瀏覽(17)
  • 常用上位機(jī)調(diào)試軟件

    常用上位機(jī)調(diào)試軟件

    目錄 串口工具 1.SSCOM 2.阿貓串口調(diào)試助手 3.XCOM V2.6 4.UartAssist V4.3.29 串口調(diào)試助手 5.匿名科創(chuàng)地面站 6.?serial_port_plotter? 7.MobaXterm 8. VOFA+? 9. Serial Studio 10. 有人串口調(diào)試助手 11.modbuspoll和modbusslave 12. JYDAM調(diào)試軟件,DAM調(diào)試軟件 大家有好用的工具也可以留言討論 這款做工程的都比

    2024年02月15日
    瀏覽(36)
  • 05 Docker 安裝常用軟件 (mongoDB)

    05 Docker 安裝常用軟件 (mongoDB)

    目錄 1. mongoDB簡(jiǎn)介 1.1 mongodb的優(yōu)勢(shì) 2. mongodb的安裝 2.1 創(chuàng)建數(shù)據(jù)文件夾 2.2 備份+日志 2.3 配置文件夾 ?2.4 創(chuàng)建兩個(gè)文件 ?--- 2.4.1 配置如下:? 2.5 拉取mongodb 2.6 運(yùn)行容器? ?2.7 進(jìn)入mongodb容器 --- 2.7.0 高版本(6.0)以上是這樣的 , 舊版的沒(méi)研究? --- 2.7.1 查詢(xún)版本 --- 2.7.2??進(jìn)入amdin數(shù)據(jù)

    2024年02月16日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包