XIN ANH CHỊ GIÚP ĐỠ HƯỚNG DẪN CHUYỂN VĂN BẢN THÀNH GIỌNG NÓI TRONG EXCEL Ạ. (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài
File đính kèm ở trên là tôi làm trên file bạn gửi đó.

Nhớ mở loa lên nghe nhé.

Tiền bối ơi, em làm được rồi ạ, vui lắm lắm luôn. Cảm ơn tiền bối x100 lần ạ. Nhưng trong quá trình làm theo hướng dẫn của tiền bối, em lại thấy có phát sinh nho nhỏ 1 vấn đề, rất mong tiền bối giải đáp giúp ạ. Nội dung thắc mắc em để trong file đính kèm nha tiền bốiiiii ơi

Mong tiền bối chỉ đường dẫn lối. Cảm ơn vì tiền bối vẫn ở đây, vẫn kiên nhẫn giảng giải cho em hiểu. Rất rất cảm ơn tiền bối ạ.(@$%@
 

File đính kèm

Lần chỉnh sửa cuối:
Tiền bối ơi, em làm được rồi ạ, vui lắm lắm luôn. Cảm ơn tiền bối x100 lần ạ. Nhưng trong quá trình làm theo hướng dẫn của tiền bối, em lại thấy có phát sinh nho nhỏ 1 vấn đề, rất mong tiền bối giải đáp giúp ạ. Nội dung thắc mắc em để trong file đính kèm nha tiền bốiiiii ơi

Mong tiền bối chỉ đường dẫn lối. Cảm ơn vì tiền bối vẫn ở đây, vẫn kiên nhẫn giảng giải cho em hiểu. Rất rất cảm ơn tiền bối ạ.(@$%@
0. Nếu có MP3 trên đĩa thì code lấy từ đĩa. Nếu chưa có thì code mới tải về từ internet - code tự chọn Offline hoặc Online.

1. Sửa trong công thức cột I: $B$3:$C$18 thành $B$3:$C$1000

2. Để có thể đọc tên sản phẩm khi nhập dữ liệu mới ở bảng gốc thì phải nhập theo thứ tự cột C xong mới nhập cột B (khi bắn MSP vào cột H thì công thức ở cột I phải tìm được TSP ở cột C), vd. nhập C50 -> nhập B50

3. code mới trong Sheet1. Đọc kỹ các chú thích để hiểu.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastRow As Long, dong As Long, filename As String, cell As Range
'    On Error GoTo ErrHandler
    
    If Target.Count > 1 Or Target.Row < 3 Or (Target.Column <> 2 And Target.Column <> 8) Then Exit Sub  ' chi xet cac cell thuoc B hoac H khi dong >= 3
    
    If Target.Column = 2 Then   ' co su thay doi o cot B
        If Target.Offset(0, 1).Value <> "" Then
            lastRow = Me.Range("H" & Rows.Count).End(xlUp).Row  ' dong cuoi o cot H
            Set cell = Me.Range("H3:H" & lastRow).Find(Target.Value, , xlValues, xlWhole, xlByColumns, xlNext)
            If cell Is Nothing Then     '   ma moi nhap trong cot B chua co trong cot H
                dong = lastRow + 1
            Else    '   ma moi nhap trong cot B chua co trong cot H
                dong = cell.Row
            End If
            Me.Range("H" & dong).Value = Target.Value        ' (A) muc dich de say ra su kien Worksheet_Change, lan nay la o cot H -> se doc ma
        End If
    Else    '   su thay doi o cot H. Khi ma duoc nhap tu cot B sang H, de co the doc tieng o cot I thi ten san pham o cot C phai duoc nhap truoc khi nhap ma o cot B
        If Target.Value <> "" Then  '   neu la xoa ma thi khong lam gi
            If CreateObject("Scripting.FileSystemObject").FileExists(ThisWorkbook.Path & "\" & Target.Value & ".mp3") Then     ' da co tap tin MP3
                DocSP_Offline Target.Value
            Else        '   chua co MP3
                strTempFileName = ThisWorkbook.Path & "\" & Target.Value & ".mp3"
                DocSanPham_Online Target.Offset(0, 1).Value     ' tai ve MP3 voi noi dung o cot I va doc
            End If
        End If
    End If
    
'CleanExit:
'    Application.EnableEvents = True
'    Exit Sub
'
'ErrHandler:
'    MsgBox "Đă xay ra loi: " & Err.Description
'    Resume CleanExit
    
    
End Sub

4. Trong module modTextToSpeech sửa thành
Option Explicit

Public strTempFileName As String


Trong Sub GetTTS xóa dòng: strTempFileName = Environ$("temp") & "\translate_tts.mp3"
 
Tiền bối ơi, em làm được rồi ạ, vui lắm lắm luôn. Cảm ơn tiền bối x100 lần ạ. Nhưng trong quá trình làm theo hướng dẫn của tiền bối, em lại thấy có phát sinh nho nhỏ 1 vấn đề, rất mong tiền bối giải đáp giúp ạ. Nội dung thắc mắc em để trong file đính kèm nha tiền bốiiiii ơi

Mong tiền bối chỉ đường dẫn lối. Cảm ơn vì tiền bối vẫn ở đây, vẫn kiên nhẫn giảng giải cho em hiểu. Rất rất cảm ơn tiền bối ạ.(@$%@
Bạn xem file đính kèm. Chỉ code cơ bản thôi, chưa bẫy lỗi gì nhiều. Đây là đọc Offline. Online không thích hợp trong trường hợp này nên tôi không làm.
- Tạo riêng một sheet cho việc lưu mã SP.
- Khi có mã SP mới chưa có file âm thanh thì copy các mã mới đó vào cột E,F rồi bấm nút tạo file.
- Nhớ kết nối internet để tải giọng đọc của chị Google.
Xong.
 

File đính kèm

Bạn xem file đính kèm. Chỉ code cơ bản thôi, chưa bẫy lỗi gì nhiều. Đây là đọc Offline. Online không thích hợp trong trường hợp này nên tôi không làm.
- Tạo riêng một sheet cho việc lưu mã SP.
- Khi có mã SP mới chưa có file âm thanh thì copy các mã mới đó vào cột E,F rồi bấm nút tạo file.
- Nhớ kết nối internet để tải giọng đọc của chị Google.
Xong.
Chào tiền bối ạ, tiền bối ơi em đã làm theo sự hướng dẫn của tiền bối nhưng chỉ có ở đoạn đầu đọc được còn đoạn sau thì k phát ra âm thanh, em đã dành ra hơn 1 ngày ngồi tìm hiểu nhưng vẫn k thể tìm ra lý do tại sao lại vậy. File em đính kèm bên dưới là file em làm ạ, em làm hẳn hơn 1000 dòng cho biết, làm y hệt những gì tiền bối dặn, nhưng mà em chỉ làm được đoạn đầu đọc được thôi. Không biết e nỡ làm sai chỗ nào mà Chỉ thấy file nặng thôi còn đọc âm thanh thì không đọc được. Khó quá tiền bối ạ. Em lại chẳng làm được rồii (@$%@ (@$%@ (@$%@ . Tiền bối ơi tiền bối giải bài tập giúp em được k ạ ? Mặc dù em đã làm y như những gì tiền bối dặn dò nhưng mà vẫn không được, tiền bối giải thích giúp em em sai ở đâu được không ? chứ cả ngày qua em tìm mãi k ra, Em cảm ơn tiền bối rất là nhiều ạ (@$%@(@$%@ ( em có tải cả phần âm thanh lên fodder này mà tải mãi mà k lên nổi em phải xóa bớt đi thì mới tải được lên, File này chỉ còn lại mp3 tên của các hàng thôi tiền bối ạ ) :(
 

File đính kèm

Lần chỉnh sửa cuối:
Chào tiền bối ạ, tiền bối ơi em đã làm theo sự hướng dẫn của tiền bối nhưng chỉ có ở đoạn đầu đọc được còn đoạn sau thì k phát ra âm thanh, em đã dành ra hơn 1 ngày ngồi tìm hiểu nhưng vẫn k thể tìm ra lý do tại sao lại vậy. File em đính kèm bên dưới là file em làm ạ, em làm hẳn hơn 1000 dòng cho biết, làm y hệt những gì tiền bối dặn, nhưng mà em chỉ làm được đoạn đầu đọc được thôi. Không biết e nỡ làm sai chỗ nào mà Chỉ thấy file nặng thôi còn đọc âm thanh thì không đọc được. Khó quá tiền bối ạ. Em lại chẳng làm được rồii (@$%@ (@$%@ (@$%@ . Tiền bối ơi tiền bối giải bài tập giúp em được k ạ ? Mặc dù em đã làm y như những gì tiền bối dặn dò nhưng mà vẫn không được, tiền bối giải thích giúp em em sai ở đâu được không ? chứ cả ngày qua em tìm mãi k ra, Em cảm ơn tiền bối rất là nhiều ạ (@$%@(@$%@ ( em có tải cả phần âm thanh lên fodder này mà tải mãi mà k lên nổi em phải xóa bớt đi thì mới tải được lên, File này chỉ còn lại mp3 tên của các hàng thôi tiền bối ạ ) :(
- File tôi thiết kế là tự động đặt tên file .mp3 theo Mã SP, code sẽ vlookup mã SP với tên file âm thanh mà đọc lên. Tôi lại thấy folder bạn gửi tên file .mp3 là tên sản phẩm thì lấy gì mà nó tìm file để đọc.

Screenshot 2025-05-22 at 09.13.15.png

- Mỗi file âm thanh chừng 10kb thì 1.000 file nén lại cũng chừng 6M.
- Khi gửi lệnh lên google để tạo file âm thanh rồi tải về thì bạn nên chia nhỏ ra mỗi lần gửi chừng 200 mã để trang web nó không chặn lại do thấy gửi lệnh một lúc nhiều quá, tưởng bị tấn công gì đó.
- Giải thuật của tôi là tạo file âm thanh cho từng mã SP luôn chứ không tạo file cho từng nhóm, mặc dù là giống nhau (vd: 10 mã SP đều có tên là BIM BIM. Khi đó chỉ cần gõ mã SP là tìm đúng file âm thanh của mã đó để phát. Nếu bạn muốn tạo theo nhóm (cho ít file âm thanh cần tạo lại) thì: khi xử lý code phải dò tìm đích danh tên sản phẩm (có dấu tiếng Việt và nhiều ký tự) như "Sữa chua nếp cẩm" ứng với tên file âm thanh "Sữa chua nếp cẩm.mp3" rồi mới phát thì mất thời gian và tôi không tin tưởng cho lắm. Rủi ro trong quá trình cập nhật dư liệu, gõ tên SP dư một khoảng trắng thì nó so sánh tên file không giống và không tìm ra file.
- Các file âm thanh này chỉ tạo một lần rồi dùng hoài thì chỉ mất thời gian tạo ban đầu thôi sau đó tái sử dụng nên chẳng cần phải tiết kiệm (nếu chỉ tạo file dùng chung cho nhiều mã rồi mất thêm thời gian để xử lý mã SP nào dùng cho file âm thanh nào v.v...phiền phức)

* Lưu ý:
- Tên SP bạn nên gõ tiếng Việt đầy đủ để đọc cho đúng chứ bạn viết tắt thì nó cũng đọc theo kiểu viết tắt luôn. Vd: Ô MAI thay vì OMAI.
- Khi tải file âm thanh, nên chờ khi có thông báo "Xong." rồi hãy xử lý việc khác vì code vẫn còn đang tải file.
- Bỏ danh xưng tiền bối đi.
 
Web KT

Bài viết mới nhất

Back
Top Bottom