筆記本的蓬勃發展讓體系越來越明朗,商務型、時尚型、多媒體應用、特殊用途。超輕超薄是時下筆記本電腦的主要發展方向,但這并沒有影響其性能的提高和功能的豐富。同時,其便攜性和備用電源使移動辦公成為可能。由于這些優勢的存在,筆記本電腦越來越受用戶推崇,市場容量迅速擴展。
新近一款神舟國產商務本的曝光讓大家萬分期待,這款商務本外型酷似macbook pro,簡潔大方。
這款本本最大特點是:可180度展開,極致平滑。
此款高顏值本本是鋁合金機身,做工精美。
線條流暢,無縫貼合。
外觀上,這款X4商務本和頗似macbook pro,14吋屏幕,與超級本相比,舒適度大幅度提升。
來看下產品效果:
<script src="https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>
本系統純本地部署,不依賴任何網絡資源,斷網可用,實現的功能如下:
技術實現:
# 指定本地目錄
model_dir=snapshot_download(
"damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
cache_dir="./models_from_modelscope",
)
#語音識別大模型
inference_pipeline=pipeline(
task=Tasks.auto_speech_recognition,
model=model_dir,
vad_model="damo/speech_fsmn_vad_zh-cn-16k-common-pytorch",
punc_model="damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch",
)
# 使用soundfile讀取音頻數據,這里我們傳遞了模擬的文件對象
rec_result=inference_pipeline(input='upload_audio.mp3', param_dict={'use_timestamp':False} )
#將智能語音回復內容變成語音發送回去
async def send_answer_data(self, websocket, txt):
response=requests.post( "http://127.0.0.1:11434/api/generate", json={"prompt": "用中文回答,不要出現英文和表情:" + txt, "model": "llama3", "stream": True}, stream=True )
msg=""
div_id=str(time.time())
for data_chunk in response.iter_content(chunk_size=None):
chunk_ary=json.loads(data_chunk)
#拼接到msg的后面
ai_response=chunk_ary["response"]
3. 語音轉化:使用開源模型 Coqui TTS
# 文字轉語音大模型
device="cuda" if torch.cuda.is_available() else "cpu"
coqui_ai_tts=TTS("tts_models/zh-CN/baker/tacotron2-DDC-GST").to(device)
coqui_ai_tts.tts_to_file( text=msg + "", file_path='tmp_audio.wav', split_sentences=False)
# 打開WAV文件 # 讀取音頻數據
with open('tmp_audio.wav', 'rb') as wav_file:
audio_data=wav_file.read()
function fbx_init(ele_id) {
fbx_container=document.getElementById(ele_id);
fbx_ele_id=ele_id;
fbx_camera=new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 2000);
fbx_camera.position.set(100, 200, 300);
//目標點被設置為場景中的(0, 100, 0)位置。這意味著相機將圍繞這個點進行旋轉。
/**
x: 第一個參數0代表目標點在x軸(水平方向)上的坐標。在這個例子中,目標點位于x軸的原點。
y: 第二個參數100代表目標點在y軸(垂直方向)上的坐標。在這個例子中,目標點位于y軸正方向上,距離原點100單位長度的位置。
z: 第三個參數0代表目標點在z軸(深度方向)上的坐標。在這個例子中,目標點位于z軸的原點。
*/
fbx_controls=new THREE.OrbitControls(fbx_camera);
fbx_controls.target.set(0, 100, 0);
fbx_controls.update();
/**
0xa0a0a0:霧的顏色,與背景顏色相同,這樣霧和背景之間可以平滑過渡。
200:霧開始的距離,即從相機到場景中對象的距離為200單位時,霧效果開始顯現。
1000:霧影響的最大距離,即當對象距離相機1000單位時,霧效果達到最大。
*/
fbx_scene=new THREE.Scene();
fbx_scene.background=new THREE.Color(0xa0a0a0);
fbx_scene.fog=new THREE.Fog(0xa0a0a0, 200, 1000);
/**
這行代碼創建了一個THREE.HemisphereLight實例,這是Three.js中的一種光源類型。半球光模擬來自天空和地面的光,它有兩個顏色參數:
0xffffff:第一個顏色參數代表天空的光,這是一個十六進制的顏色值,表示純白色。
0x444444:第二個顏色參數代表地面的光,這是一個較暗的灰色,通過與天空光的對比,可以創建出一種環境光效果。
*/
fbx_light=new THREE.HemisphereLight(0xffffff, 0x444444);
fbx_light.position.set(0, 200, 0);
fbx_scene.add(fbx_light);
//這行代碼創建了一個THREE.DirectionalLight實例,這是一種模擬來自無限遠處的光源,如太陽。0xffffff是一個十六進制的顏色值,表示光源發出的是純白色光。
fbx_light=new THREE.DirectionalLight(0xffffff);
fbx_light.position.set(0, 200, 100);
fbx_light.castShadow=true;
fbx_light.shadow.camera.top=180;
fbx_light.shadow.camera.bottom=-100;
fbx_light.shadow.camera.left=-120;
fbx_light.shadow.camera.right=120;
fbx_scene.add(fbx_light);
/**
它由一個幾何體(Geometry)和一個材質(Material)組成:
THREE.PlaneGeometry(2000, 2000):創建了一個平面幾何體,寬度和長度都是2000單位,這個平面會在xy平面上生成。
THREE.MeshPhongMaterial({ color: 0x999999, depthWrite: false }):創建了一個使用Phong著色模型的材質,顏色為灰色(十六進制顏色值0x999999),并設置depthWrite屬性為false。
depthWrite屬性決定材質是否會影響深度緩沖區,設置為false意味著這個網格在深度測試中會被忽略,這通常用于創建一個背景平面,它不會遮擋其他對象。
*/
var fbx_mesh=new THREE.Mesh(
new THREE.PlaneGeometry(2000, 2000),
new THREE.MeshPhongMaterial({ color: 0x999999, depthWrite: false })
);
//這行代碼將網格繞x軸旋轉-π/2弧度(即-90度)。由于平面幾何體默認躺在xy平面上,這個旋轉會使其站立起來,使平面的法線指向y軸的負方向,即屏幕的向外方向。
fbx_mesh.rotation.x=- Math.PI / 2;
//這行代碼設置了網格的receiveShadow屬性為true,這意味著網格能夠接收來自場景中光源的陰影。
fbx_mesh.receiveShadow=true;
fbx_scene.add(fbx_mesh);
/**
這行代碼創建了一個THREE.GridHelper實例,這是一個輔助工具,用于在場景中生成一個網格平面:
第一個參數2000:網格的尺寸,即網格覆蓋的總長度和寬度,單位是場景中的單位長度。
第二個參數20:網格的分割數,即沿著網格的長度和寬度方向各分割成多少段。
第三個和第四個參數0x000000:這兩個十六進制顏色值分別代表網格主要線條和次要線條的顏色。在這個例子中,兩者都設置為黑色,意味著主要線條和次要線條顏色相同。
*/
var fbx_grid=new THREE.GridHelper(2000, 20, 0x000000, 0x000000);
fbx_grid.material.opacity=0.2;
fbx_grid.material.transparent=true;
fbx_scene.add(fbx_grid);
//初始化所有的動作模型
fbx_init_all_actions();
//使用Three.js庫來設置WebGL渲染器,并將其配置為支持陰影映射,然后將其添加到DOM元素中
fbx_renderer=new THREE.WebGLRenderer();
fbx_renderer.setPixelRatio(window.devicePixelRatio);
fbx_renderer.setSize($('#' + fbx_ele_id).width(), $('#' + fbx_ele_id).height());
fbx_renderer.shadowMap.enabled=true;
fbx_container.appendChild(fbx_renderer.domElement);
fbx_animate();
}
# 物體檢測大模型
yolov8_model=YOLO("./models_from_modelscope/yolov8m.pt", task="detect")
# 識別物體信息
results=yolov8_model(img_np)
for result in results:
_, buffer=cv2.imencode(".png", result.plot()) # 使用base64模塊將字節流編碼為Base64字符串
base64_encoded=base64.b64encode(buffer.tobytes()).decode()
await websocket.send(json.dumps({ "type": "detect_img", "data": "data:image/png;base64," + base64_encoded}))
if result.boxes:
await websocket.send(json.dumps({ "type": "detect_res", "data":dist_tmp}))
continue
face_any_labelchinese={ 0: "生氣", 1: "厭惡", 2: "害怕", 3: "高興", 4: "傷心", 5: "驚訝", 6: "平淡"}
face_any_inputs=keras.Input(shape=(48, 48, 1), batch_size=64)
create_dense_net=create_dense_net(7, face_any_inputs, include_top=True, depth=121, nb_dense_block=4, growth_rate=16, nb_filter=-1,nb_layers_per_block=[6, 12, 32, 32], bottleneck=True, reduction=0.5, dropout_rate=0.2, activation="softmax")
face_any_model=tf.keras.Model(face_any_inputs, create_dense_net, name="densenet121")
face_any_model.load_weights("./models_from_modelscope/DenseNet121.h5")
face=cv2.cvtColor(face_any_faces[i], cv2.COLOR_BGR2GRAY)
face=cv2.resize(face, (48, 48))
face=face / 255.0
num=np.argmax(face_any_model.predict(np.reshape(face, (-1, 48, 48, 1))))
#表情結果
face_expression=face_any_labelchinese[num]
另外還有些邊邊角角的技術,比如 WebSocket、getUserMedia、webkitGetUserMedia 等,此套代碼的商業應用場景會比較多
由于一開始考慮的比較完善,此模型可以運行在任何 電腦、手機、平板、展示屏等等設備上,而且不需要外網,本地就可以獨立運行;
歡迎各位看官加我粉絲,一起交流AI技術場景的落地;
次用上 Mate Xs 2 的時間比較晚,一是因為沒評測機,二是之前一直沒買到,后來就放棄了,這次能用上純屬巧合,有多巧合這里就不展開說了。
Mate Xs 2 是我今年的第二臺折疊屏手機,但是是我的第一部外折屏手機。
?說來慚愧,即使是我之前在數碼圈五年了,每每像柔宇、Mate Xs 的發布我都沒有參加,加上折疊屏手機也足夠稀有,所以一直以來都沒有好好用過外折疊的手機。由于外折的屏幕在折疊狀態是機身的一部分,是名副其實的「兩面軟屏」。?
作為第一次接觸這類產品的我,對它比對旁邊的「頂配」iPhone 13 Pro Max 還要小心。尤其是我在開兩輪車的時候,我根本不敢將手機夾在手機支架上,我是真怕把屏幕夾壞了。?
當然,如果真怕屏幕刮了、摔了,也可以用保護殼套上,這樣就跟普通手機沒啥區別了,而且保護殼也能當手機的橫屏支架。只是套了殼之后手機明顯更厚了,而且每次展屏,也得將殼體左側給「掰」出來。
外折屏雖然讓手機精貴了點,但對比內折屏也不是毫無優勢。
實際上,我是反對內折絕對就比外折好的說法,畢竟綜合來看,當下兩種方案各有優劣,內折減少了破損風險,而且技術更成熟,缺點是內外屏分開,但用戶大部分時間都是用外屏的,因為過去的習慣就是豎屏、單手用手機,而這里又往往是廠商做減法的地方。?
下半部分黑色不是邊框,是一塊屏幕
外折則相對「簡單粗暴」,內外都是一塊屏,折痕沒有內折那么明顯,分辨率、刷新率也是同等級,就算是開前后雙屏,一塊屏幕做了兩塊屏幕的事,一人干了兩個崗,妥妥的優秀員工。缺點就是前面提到的精貴,而且外折對 ID 設計的造詣非常高,外折屏厚了可是非常難看的——柔宇的 FlexPai 2 就是反面例子。?
柔宇FlexPai 2
?Mate Xs 2 真正讓我驚嘆的地方其實不只是它的折疊方式,而是為了這個折疊方式而量身定制的內部結構。?
Mate Xs主板,注意主板形狀(圖源:艾奧科技)
?在厚度的限制下,手機電池擴容只能從平鋪增加,上一代 Mate Xs 用了「C」型主板給電池騰出更多空間,而這次 Mate Xs 2 更是極限操作般地用了堆疊數量更多、面積更小的「L」型主板,將主板、SoC、攝像頭、振動馬達都濃縮在鋼筆大小的空間里,一邊給電池騰出更多面積,一邊控制整機厚度,加上本身是 120Hz 的屏幕,手機在折疊狀態下的體驗跟直板旗艦的體驗已經差別不大了。
Mate Xs主板,注意主板形狀(圖源:微機分Wikihome)
那么代價是什么呢?
Mate Xs 2 除電池外的關鍵零部件都匯聚在右側的手柄上,整機的重心也在這個地方,在折疊狀態下還行,但在展開狀態下,由于整機重量平衡的變化,手機整體重量感覺更輕了,但重心偏右會更加明顯,有時候看視頻,用手「捏」著手柄遠不如用手捧著機器舒服。?
由于主板和 SoC 都被壓縮在這個手柄內,而且主板用的是堆疊結構,SoC 和其他零部件在內部散熱就不是那么好了,加上手柄這個狹長的空間不僅內部窄,外部還有手掌握持的熱量,大大限制了手機散熱能力。
?這意味著 Mate Xs 2 在面對高強度任務,比如渲染、游戲的時候,手柄部分的熱量會影響驍龍 888 的性能持續輸出。
另外,華為將三枚攝像頭都縱向排布在手柄上部,這樣的設計非常好看,但同樣也是物理限制,華為并不能在手柄上放置尺寸更大的 CMOS,這也限制了手機拍照的感光和長焦能力,更需要算法的加持去救場。
?但盡管華為在相機算法上確實不錯,可硬件的不足,比如主攝裁切模糊、3.5 倍長焦感光能力、對焦速度一般,也會讓 Mate Xs 2 的拍照體驗對比其他手機打上折扣。
當然,華為每個系列的手機都有針對性的定位,相機如 P、性能如 Mate,Mate X、Mate Xs 系列把「折疊屏」這個事做好了,其他地方在標準水平線上,那基本上就可以了。
只能用 4G 的設定讓 Mate Xs 2 比其他折疊屏手機弱勢,而且折疊形態也注定不能和 P50 Pro 那樣加一個 5G 殼,縱使華為本身在通訊信號這方面比友商有明顯優勢,即便是「地表最強 4G」也只是 4G 標準,真拿 5G 網絡來對比,還是能在體驗上感覺到落差。?
當然,我們也別太神化 5G。畢竟目前哪怕北上廣深,5G 信號也不能做到全覆蓋或者只有低信號覆蓋。4G 雖慢,但它比 5G 穩這是事實,尤其是在掃場所碼,5G 沒信號,4G 信號滿格能秒打卡的時候,我是真的得謝謝 4G 幫我省了?幾秒?被太陽?曬?的?時間?。
?折屏手機到現在已經有四五個年頭了,三星、華為、小米、vivo、OPPO 都曾嘗試過活用折疊屏這個產物,但正如我前幾年在某媒體工作時寫的評論文,想要將折疊屏和直板手機在體驗上區分開來,因為涉及到許多第三方軟件,在折疊屏手機銷量追上直板手機之前,光靠手機廠的影響力是非常有限的。
?即便強如華為,在 Mate X2、Mate Xs 2 這些折疊屏旗艦上,大部分場景都是系統主動式地讓屏幕顯示更多的 App、二級窗口。?
?而遇到不能分屏或不能顯示二級菜單的「老頑固」,系統則是用整理排版的方式,讓 App 能填滿這塊大屏幕,即使不是多窗口工作,也好歹不是毫無誠意的局部顯示,比折疊屏手機剛出來的時候好看多了。
目前「平行視界」對第三方 App 的兼容度還是蠻高的,比如我常用的微博、微信、嗶哩嗶哩、知乎、幾款頭條系 App,甚至淘寶、京東,都能做同屏二級顯示(詳細請看列表),瀏覽效率比直板手機要高不少。?
而像美團外賣、WPS、網易云音樂這些本身就沒那么強分屏需求的 App,展屏狀態下的排版也和諧了不少。
大眾點評 App
?不過這類軟件偶爾也會有顯示 Bug,比如美團的部分標簽還是會顯示尺寸錯誤,網易云的個別 icon 會變形,極個別?不支持?大屏顯示的? ?A?p?p? ,則?還是?老樣子?的?大?圖大? ?i?c?o?n? ?顯示?。
另外還有一個大家可能忘了但確實很爽的功能——微信支持折疊屏手機以「平板」方式登錄。?
?換言之,我可以兩個設備登錄同一個微信,而且收發信息、掃碼權限兩部手機都能同步,這點對于剛好切中了微信在直板手機不能多設備登錄、平板電腦不便攜帶的痛點,即使將折疊屏當做副機,也非常方便。
?前些天華為官宣將在 7 月 27 日發布 HarmonyOS 3,Mate 40 系列和折疊屏都在首批升級機型名單內,如果?能?搶到?內測?資格的話?,?我可能會給軟件再做下深度體驗。???????